显示SQLSRV_FETCH_ASSOC的键/值对

时间:2014-01-22 16:13:05

标签: jquery json

我正在使用SQLSRV_FETCH_ASSOC将PHP中的数组返回到ajax调用。

然后我想引用数组中的特定项目。

所以我的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]

我希望这能从数组中返回数据,而不是索引和对象吗?

1 个答案:

答案 0 :(得分: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