2014-07-04 72 views
0

我想使用.getJSON從服務器獲取數據。數據可以獲取,但無法在頁面中顯示。使用jquery獲取jsondata

JS代碼:

$(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> 

我從服務器顯示火災的bug得到的數據: { 「名」: 「湯姆」, 「性」:」男性」, 「電話」: 「456」, 「電子郵件」: 「[email protected]」}

+0

如果'json'響應變量不是對象數組,它無意中用'$ .each'進行迭代。 – machineaddict

+0

您是否嘗試警告str?如果它有適當的HTML數據,請嘗試$(「#datashow」)。html(str);而不是追加 – captainsac

+0

其實之前,警報(3)不起作用。我不明白爲什麼.. – user2228647

回答

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); 
      }); 
     }); 
    }); 
+0

在代碼[var str]之前,我添加了一個警報(3),但它不起作用。 – user2228647

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); 
     }); 
     }); 
    }); 
+0

我發現警報(3)不起作用!我不知道爲什麼... – user2228647

+0

什麼是錯誤? – user1094553

+0

沒有錯誤顯示,我感到困惑.. – user2228647

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