将参数传递给另一个页面以从Json生成listview

时间:2012-09-28 18:54:27

标签: json listview jquery-mobile geturl

您好我正在使用此js传递url参数并且它工作正常,但我的问题是,当我定义JSON文件的路径时,我不想使用项目的ID ...我想使用另一个Id。例如:我有以下项目:

 {"id":"1",
"name":"Winery",
"street":"Chile",
"number":"898",
"phone":"4204040",
"mail":"winery@hotmail.com",
"web":"www.winery.com",
"lat":"-32.891638",
"long":"-68.846522",
"id_localidad":"1",
"id_provincia":"1"}

我想将id_localidad放在路径的末尾,根据城市生成列表视图(id_localidad是商店所在城市的ID),而不是项目的ID。这不适合我。

提前致谢!

JS FILE

 $('#PuntosDeVenta').live('pageshow',function(event){


 var id =  getUrlVars()["id"];


 $.getJSON('http://localhost/CavaOnline/json_PuntosDeVentas.php?id_localidad='+id,  function(vinerias) {
 //THIS IS NOT WORKING, IS THE SAME AS PUTTING id, not id_localidad

 $.each(vinerias, function(index, vineria) {

    $('#listviewVinerias').append( '<li><a href="FichaTecnicaVineria.php?id=' + vineria[id - 1].id + '" > ' +
                '<img src="pics/' + vineria[id - 1].img_url1 + '"/>' +
                '<h4>' + vineria[id - 1].name+'</h4>' +
                '<p>' + vineria[id - 1].street+ ' ' + vineria[id - 1].number+ '</p>' +
                '</a></li>');

    $('#listviewVinerias').listview('refresh') 

  });

 });

});

function getUrlVars() {

var vars = [], hash;

var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

for(var i = 0; i < hashes.length; i++)

{

    hash = hashes[i].split('=');

    vars.push(hash[0]);

    vars[hash[0]] = hash[1];

}

return vars;

}

我加载列表的区域

 <div data-role="content">

 <ul id="listviewVinerias" data-role="listview"></ul>

 </div>

1 个答案:

答案 0 :(得分:0)

所以我假设你的vinerias是一个包含JSON对象列表的变量,即使我不知道为什么你到处都在调用[id-1]。  如果是这样,您可以使用.filter()函数过滤出id_localidad等于指定值的元素。

var filteredVinerias = vinerias.filter(function(index){
    return this["id_localidad"] === "1" //The localidad you want
});