2013-06-24 86 views
0

我目前想知道为什么我不能在JavaScript中使用我的JSON结果,任何人都有想法?jQuery Mobile&JSON - 如何使用JSON响应?

我做不是得到任何警报,即使JSON调用的结果是成功的(返回代码200),我可以在Firebug中看到结果。

$(document).on('pageinit', function(event){ 

    ... 

    $('.link').on('click', function (event) { 

      var parm = $(this).attr("data-parm"); 
      var url = 'http://****:8000/service?parameter=' + parm; 

      $.getJSON(url, function (data) { 
      var result = $.parseJSON(data); 
      alert(result[1].emnam); 
      parse(result); 
      }); 
    }); 

}); 

function parse(result) { 
     alert('parse function'); 
} 

我的JSON结果看起来像这样在浏览器(通过萤火虫或铬开发工具)

{success: "true", 
msg: "Data retrieved", 
data: [ 
{pernr: "00001032", emnam: "Michaela"}, 
{pernr: "00001016", emnam: "Mike"}, 
{pernr: "00001024", emnam: "Frank"} 
]} 

最后,我要动态地添加列表视图进入我的div #list ,有pernr和名称列。谢谢!

+0

'.getJSON'已经解析JSON给你。 '$ .parseJSON(data)'会导致错误(我认为)。 –

+0

感谢您的信息,但它似乎对我的输出没有影响。 – zyrex

+0

啊,访问应该是'data.data [1] .emnam'。 –

回答

0

你可以做这样的事情: http://jsfiddle.net/balintbako/jEc8d/

var table = $("<table><thead><tr><th>1</th><th>2</th></tr></thead><tbody></tbody></table"); 
$(".someclass2").append(table); 
$.each(data.data, function (i, item) { 
    table.find("tbody").append("<tr><td>" + item.pernr + "</td><td>" + item.emnam + "</td></tr>"); 
}); 
0

我从JQM-docs的验证码

<ul id="input_what" style="height:40px;width:100%;" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="xyz" data-filter-theme="d"></ul> 

-

$("#input_what").on("listviewbeforefilter", function (e, data) { 
    var $ul = $(this), 
     $input = $(data.input), 
     value = $input.val(), 
     html = ""; 
    $ul.html(""); 
    if (value && value.length > 2) { 
     $ul.html("<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>"); 
     $ul.listview("refresh"); 
     $.ajax({ 
      url: 'http://****:8000/service?parameter=' + parm +'', 
      dataType: "json", 
      data: { 
       term: $input.val() 
      } 
     }) 
     .then(function (response) { 
      $.each(response, function (i, val) { 
       html += "<li ><a class='completeItem' href='#'>" + val + "</a></li>"; 
      }); 
      $ul.html(html); 
      $ul.listview("refresh"); 
      $ul.trigger("updatelayout"); 
     } 
     ); 
    } 
});