2014-01-22 57 views
0

我正在使用SQLSRV_FETCH_ASSOC將PHP中的數組返回給ajax調用。SQLSRV_FETCH_ASSOC的顯示鍵/值對

我想然後引用數組中的特定項目。

所以我的PHP JSON是:

$sth = sqlsrv_query($conn,"SELECT Property, Value from TBL_CONFIG_SYSTEM"); 

    $rows = array(); 
while($r = sqlsrv_fetch_array($sth,SQLSRV_FETCH_ASSOC)) { 
    $rows[] = $r; 
}  
print json_encode($rows); 

,我想爲我的Ajax響應做這樣的事情:

$.ajax({ 
    url: 'json/admin/getSystemSettings.php', 
    type: 'POST', 
    dataType: "json", 
    data: {}, 
    success: function (result) { 
     $.each(result, function (key, value) { 
      console.log('key: ' + key + ',value: ' + value); 
     }); 
    } 
}); 

控制檯日誌,似乎只返回:

index: 0,value: [object Object] 
index: 1,value: [object Object] 
index: 2,value: [object Object] 
index: 3,value: [object Object] 
index: 4,value: [object Object] 

我想這從數組中返回數據,而不是索引和對象?

+0

你有問題要問? –

+0

對不起。剛剛更新了 - 我忘了那一點! :) – realtek

+0

刪除不相關的標籤。您不能責怪您的客戶端JavaScript代碼的服務器端數據庫庫。 –

回答

0

console.log()如果將所有內容都轉換爲字符串,則無效。爲了正確調試,你需要其中之一:

console.log('key: %o, value: %o', key, value); 

...或者,如果你的瀏覽器控制檯不支持Firebug的API:

console.log('key: ', key, ',value: ', value); 

您也應該檢查你的實際JSON(無論是從PHP或者使用瀏覽器開發工具)。我想你是這樣的:

[ 
    { 
     "Property": "Foo 1", 
     "Value" : "Bar 1", 
    }, 
    { 
     "Property": "Foo 2", 
     "Value" : "Bar 2", 
    }, 
    { 
     "Property": "Foo 3", 
     "Value" : "Bar 3", 
    } 
] 

因此關鍵是無關緊要的,你需要使用value.Propertyvalue.Value