使用jquery来获取jsondata

时间:2014-07-04 12:56:27

标签: javascript jquery

我想使用.getJSON从服务器获取数据。数据可以获得,但无法在页面中显示。

js code:

$(function(){ 
    alert(1);
      $("#jsondata").bind("click",function()
      { 
          var data = "action=getdata";
          alert(2);
          $.getJSON("Guess.php",data, function(json)
          {  
              alert(3);
              var str = '<table><tr><td>Name</td><td>1#Sex</td><td>2#Tel</td></tr>';
              $.each(json,function(i,v){
                  str += '<tr><td>'+v.name+'</td><td>'+v.sex+'</td><td>'+v.tel+'</td></tr>';
              });
              str += '</table>';
              $("#datashow").append(str);
         });  
      }); 
  });

html代码:

    <button id="jsondata" name="jsondata" accesskey="g">GetData</button>
<div id="datashow"></div>

我从服务器显示的数据显示在fire bug中: {&#34;名称&#34;:&#34;汤姆&#34;&#34;性别&#34;:&#34;男性&#34;&#34;电话&#34;:&#34; 456&#34;&#34;电子邮件&#34;:&#34; sdfd@15.com"}

3 个答案:

答案 0 :(得分:1)

成功函数的json参数应该已经被解析为JSON,所以循环使用正常的循环:

$(function(){ 
    alert(1);
      $("#jsondata").bind("click",function()
      { 
          var data = "action=getdata";
          alert(2);
          $.getJSON("Guess.php",data, function(json)
          {  
              alert(3);
              var str = '<table><tr><td>Name</td><td>1#Sex</td><td>2#Tel</td></tr>';
              for(var i in json) {
                  str += '<tr><td>' + i.name + '</td><td>' + i.sex + '</td><td>' + i.tel + '</td></tr>';
              }
              str += '</table>';
              $("#datashow").append(str);
         });  
      }); 
  });

答案 1 :(得分:0)

试试这个:(无需循环$.each

$(function () {
        $("#jsondata").bind("click", function () {
            var data = "action=getdata";
            $.getJSON("Guess.php", data, function (json) {
                var str = '<table><tr><td>日期</td><td>1#铸机产量</td><td>2#铸机产量</td></tr>';
                str += '<tr><td>' + json.name + '</td><td>' + json.sex + '</td><td>' + json.tel + '</td></tr>';
                str += '</table>';
                $("#datashow").append(str);
            });
        });
    });

答案 2 :(得分:0)

请尝试以下代码。

      $.getJSON("Guess.php",data, function(json) {  

          // Convert json reponse object to array
          json = $.makeArray(json);

          var str = '<table><tr><td>Name</td><td>1#Sex</td><td>2#Tel</td></tr>';
          $.each(json,function(i,v){
              str += '<tr><td>'+v.name+'</td><td>'+v.sex+'</td><td>'+v.tel+'</td></tr>';
          });
          str += '</table>';
          $("#datashow").append(str);
     });  
  });