【问题标题】:How to add more than one information into JQuery Mobile List view如何将多个信息添加到 JQuery Mobile 列表视图中
【发布时间】:2015-01-07 08:25:14
【问题描述】:

我正在获取 JSON 数据(在给定距离内可用的酒店列表)。我正在以 JSON 格式获取以下信息,酒店名称,酒店距离我们当前位置的距离,房间数量。在给定距离内可能有多个酒店。我们必须在 ListView 中打印所有这些信息,如下所示。我想将下图中酒店的所有信息组合到一个列表视图中。

当我们点击任何酒店列表时,它将重定向到酒店网站或更多详细信息专用酒店页面。

Javascript 代码是。

    <script> 
            $(document).ready(function(){ 
                $("#btnReg").click(function(){ 
                    $("#listOfHotelOption").empty();
                    var distance = document.getElementById('distance_id').value; 
                    var output=""; 
                    $.ajax({ 
                            url:"http://192.168.1.4/Experiements/webservices/getBuddy.php", 
                            type:"GET", 
                            dataType:"json", 
                            data:{type:"login", Distance:distance}, 
                            ContentType:"application/json", 
                            success: function(response){ 
                            console.log(response) 
                                $.each(response, function(index,value){ 

                                 output+="<li>"+value.Hotel.Name+" "+value.Hotel.Distance+" " +value.Hotel.Rooms+"</li>";
                                }); 
                            $("#listOfHotelOptions").append(output).listview().listview('refresh'); 
                        }, 
                            error: function(err){ 
                            alert(JSON.stringify(err)); 
                        } 
                    }) //ajax 
                }); //click 
            }); //ready 
    </script>

**My server site code is** 

<?php
header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request
mysql_connect("localhost","root","1234");
mysql_select_db("hotels");
if(isset($_GET['type']))
{
    if($_GET['type']=="login"){
        $distanceInKM=$_GET['Distance'];       
        $query="Select * from Hotels where Distance<='$distanceInKM'";
        $result=mysql_query($query);
        $totalRows=mysql_num_rows($result); 
        if($totalRows>0){
            $recipes=array();
            while($recipe=mysql_fetch_array($result, MYSQL_ASSOC)){
                $recipes[]=array('Hotel'=>$recipe);
            }
            $output=json_encode(($recipes));
            echo $output;
        }
    }
}
else{
    echo "Invalid format";
}

【问题讨论】:

  • 您希望将列表项的格式设置为您所拥有的图片?
  • @Tasos,对不起,请忽略以前的 cmets,我正在尝试这样 output+="
  • "+""+" "+value.Hotel.Name+" 有 "+value.Hotel.Rooms+"available"+"
  • ";每个列表显示都可以点击并重定向到专用酒店页面..

标签: javascript android jquery json cordova


【解决方案1】:

我准备了一个演示,从列表项中抓取数据并接近你想要实现的格式

演示

http://jsfiddle.net/0m3pxznf/

Jquery 从您使用的列表项中获取数据 &lt;li data-whatever="abcdcd" ... 等并在点击时获取它们。

$(document).on("click", "#hotels >li", function () {
var hotelname = $(this).closest("li").attr('data-hotel');
var rooms = $(this).closest("li").attr('data-rooms');
alert(hotelname + "--" + rooms)
})

HTML

<li data-hotel="taj" data-rooms="10"><a>
    <img src="http://s30.postimg.org/9evb4kq65/album_bb.jpg">
        <h2>Hotel:<span class="hotel">Taj</span><span class="avail">Available Rooms:<span class="rooms">10</span></h2>
        <p>Distance:<span class="distance">10km</span></p> <img src="http://s21.postimg.org/3qio5rxeb/album_p.jpg" class="sideimg"></a>

</li>

CSS

.sideimg{
 position: absolute;
right:0 !important;
top: 0 !important;
max-height: 5em !important;
max-width: 5em !important;
}

 .ui-listview>li h2 {
margin-top: -5px !important;
}
.ui-listview>li p {
margin-top:10px !important;
}

.hotel, .rooms { padding-left: 5px; }


.avail { padding-left: 15px; }

结果

如果您想将用户重定向到酒店网站,则将列表项放入data-url="the-url" 并在点击功能中抓取并使用window.location.href = theurlvariable;

【讨论】:

  • @neelabhsingh 没问题。另请参阅最后一条注释以重定向到酒店网站
  • K,这和我们昨天讨论的一样,现在今天我需要打印特定酒店的所有信息并放入单个列表视图,当我们单击列表时它会重定向到专用酒店页面或酒店网站
猜你喜欢
相关资源
最近更新 更多
热门标签