Вот моя функция
function getRecords(){
$.getJSON( "viewcustomers.php", function(data) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<td>" + val + "</td>" );
alert(items);
});
});
}
Данные, представленные в файле viewcustomers.php, приведены ниже:
[{"id":"1","name":"ali","cnic":"01","address":"nipa","email":"301","phone":"luxairy "},{"id":"2","name":"raheel","cnic":"1234567","address":"abc flat","email":"[email protected]","phone":"0342"},{"id":"5","name":"Raheel","cnic":"123-4567-45","address":"Gulshan block 13-c","email":"[email protected]","phone":"03422301775"},{"id":"4","name":"zain","cnic":"12345678","address":"f.b area","email":"[email protected]","phone":"7894561"},{"id":"6","name":"Raheel","cnic":"123-4567-45","address":"Gulshan block 13-c","email":"[email protected]","phone":"03422301775"},{"id":"7","name":"Ali","cnic":"123456786","address":"nipa","email":"[email protected]","phone":"1234568"},{"id":"8","name":"Waqas","cnic":"123456748","address":"F.b area","email":"[email protected]","phone":"1234568"},{"id":"9","name":"Owais","cnic":"1234567","address":"Fb area","email":"[email protected]","phone":"12345678"}]
Но когда я запускаю свою функцию jquery, она дает мне [object Object] вместо указанных выше значений ключа.
В вашем случае item
фактически является array
. И вы подталкиваете значения внутри него от JSON. Поэтому, чтобы просмотреть его в строчном формате,
Вы должны использовать,
alert(JSON.stringify(items));
Обращаясь к вашему JSON, вы просматриваете все объекты, поэтому вы должны Stringify те объекты, вставляя их в массив,
items.push( "<td>" + JSON.stringify(val) + "</td>" );
val
- это объект, а не строка
Поскольку для строковой реализации объекта возвращается объект [object Object]
, вы можете использовать JSON.stringify() для его обработки. Для старого браузера вы должны включить полифиль, как json2
items.push( "<td>" + JSON.stringify(val) + "</td>" );
Демо: Fiddle - посмотрите консоль браузера
Обновить
Это должно быть просто, если вы используете .map()
var items = $.map(data, function (obj) {
return "<tr>" + $.map(obj, function (val) {
return '<td>' + val + '</td>'
}).join('') + "</tr>";
});
console.log(items.join(''));
Демо: скрипка
.toString()
для объекта. Попробуйте использовать консоль черезconsole.log()
.alert
для целей отладки. Используйтеconsole.log()
как уже было сказано.