Я использую 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]
Я хотел бы, чтобы это возвращало данные из массива, а не индекс и объект?
console.log()
бесполезен, если вы конвертируете все в строку. Для правильной отладки вам нужно одно:
console.log('key: %o, value: %o', key, value);
... или, если ваша консоль браузера не поддерживает API Firebug:
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.Property
и value.Value
.