如何在JQuery Mobile List视图中添加多个信息

时间:2015-01-07 08:25:15

标签: javascript android jquery json cordova

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

enter image description here

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

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";
}

1 个答案:

答案 0 :(得分:1)

我准备了一个演示,其中包含从列表项中获取数据并接近您想要实现的格式

<强>演示

http://jsfiddle.net/0m3pxznf/

Jquery 从您使用的列表项中获取数据<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; }

<强>结果

enter image description here

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