2011-10-05 68 views
0

編輯:echo '{"results":'.json_encode($arr).'}'; 並用echo json_encode($arr);創建使用PHP適用於JQuery的一個JSON飼料

這與替換這些行組合取代:

var items = []; 
     $.each(data, function(key, val) { 
      $.each(val, function(key, val) 
      { 
        //Test insert into box using customer number 
       $("#chatbox").html(val.number); 
      }); 
     }); 

使用去除的下面建議解決與

$.each(data, function(key, val) { 
$("#chatbox").html(this.number); 
}); 

使它工作,我現在可以使用this以及我想要的屬性訪問對象數據。

末編輯

H1可以誰能幫助我與這些JSON飼料。我幾乎與它在一起(我認爲),但是無論何時將此feed添加到JQuery中,它都會被選爲字符串而不是JSON對象的數組,我無法弄清楚原因。

的PHP創建飼料:

<?php 
session_start(); 

include 'connect.php'; 

    $number = $_SESSION['number']; 

    $query = "SELECT * FROM $tableName WHERE number='$number'"; 

    $result = mysql_query($query, $sqlCon); 

    $arr = array(); 
    while($obj = mysql_fetch_object($result)) { 
     $arr[] = $obj; 
    } 

    if (count($arr) == 0) 
    { 
     echo "Your reference number is: $number"; 
    } else { 
     echo '{"results":'.json_encode($arr).'}'; 
    } 
?> 

返回的JSON看起來像這樣:

{"results":[{"id":"40","number":"466741","message":"dsfdsv","date":"2011-10-05","time":"00:28:32"},{"id":"41","number":"466741","message":"sacsac","date":"2011-10-05","time":"00:30:17"}]} 

我反而想的是:

[{"id":"40","number":"466741","message":"dsfdsv","date":"2011-10-05","time":"00:28:32"},{"id":"41","number":"466741","message":"sacsac","date":"2011-10-05","time":"00:30:17"}] 

或者是一個可以讓我迭代對象的返回值。

jQuery的我與閱讀它:

$.getJSON('get.php', function(data) { 

var items = []; 
    $.each(data, function(key, val) { 
     $.each(val, function(key, val) 
     { 
       //Test insert into box using customer number 
      $("#chatbox").html(val.number); 
     }); 
    }); 
}); 

我猜我的問題是在我創建的JSON飼料的方式,但我只是被卡住,無法弄清楚如何解決它。

任何幫助,將不勝感激,謝謝。

+1

替換'echo'{「results」:'。json_encode($ arr)。'}';'with'echo json_encode($ arr);' –

+0

編輯:好的廢品:它確實工作,然後我怎麼才能拉出例如數字值? – nhunston

回答

2

您應該設置來自PHP的頭文件以指定它是json內容。這不是100%的要求,但良好的做法,你會看到正確解析的內容類型在像螢火蟲工具。

header('Content-type: application/json'); 

你包裝一下你的JSON內容與結果密鑰,你是不是在你的JavaScript尋找讓你無論是需要刪除的部分,或者尋找您的JavaScript腳本。既然你說你想要的數組,而不是結果鍵/值的對象只是取代echo '{"results":'.json_encode($arr).'}';echo json_encode($arr);

+0

是的,我確實需要數組,以便我可以循環它(我是新來的JS你可以告訴= P),並拉出例如每個JSON對象的數值。 – nhunston

+0

哦,親愛的上帝,這是一樣容易,說this.propertyWanted ..... – nhunston

+0

我相信'應用程序/ JSON'只支持較新的瀏覽器。較舊的瀏覽器可能會對該內容類型做不好的事情。 –