01.06.2014, 22:02
|
Новичок на форуме
|
|
Регистрация: 01.06.2014
Сообщений: 4
|
|
Сообщение от walik
|
вот простой пример JSON:
var str = '({"name":"Valik","age":"20","country":"Moldova"})'; // К примеру строка которая приходит от сервера
var user = eval(str); // Превращаем так сказать строку в объект
alert(user.name+', '+user.age+' лет, '+user.country); // Обращаемся к свойствам объекта
|
Сообщение от Sweet
|
В js так работают с объектами. А с массивами - contacts[индекс].
Т.е. в твоём случае так:
alert(contacts[0].type);
|
Огромное спасибо за помощь!
|
|
01.06.2014, 22:02
|
Новичок на форуме
|
|
Регистрация: 01.06.2014
Сообщений: 4
|
|
Сообщение от walik
|
вот простой пример JSON:
var str = '({"name":"Valik","age":"20","country":"Moldova"})'; // К примеру строка которая приходит от сервера
var user = eval(str); // Превращаем так сказать строку в объект
alert(user.name+', '+user.age+' лет, '+user.country); // Обращаемся к свойствам объекта
|
Сообщение от Poznakomlus
|
var data = [{
"type": "email",
"subtype": "",
"contact": "9651139 383 @mail.ru",
"ext": ""
}, {
"type": "email",
"subtype": null,
"contact": "alex@ bab iev.com",
"ext": ""
}, {
"type": "tel",
"subtype": "",
"contact": "123",
"ext ": " "
}, {
"type": "tel",
"subtype": "",
"contact": "123",
"ext ": " "
}];
for (var el, i = 0; i < data.length; i++) {
el = data[i];
alert(el.type + "\r\n" + el.subtype + "\r\n" + el.contact + "\r\n" + el.ext);
}
|
Огромное спасибо за помощь!
|
|
01.06.2014, 22:28
|
Новичок на форуме
|
|
Регистрация: 01.06.2014
Сообщений: 4
|
|
Сообщение от Poznakomlus
|
var data = [{
"type": "email",
"subtype": "",
"contact": "9651139 383 @mail.ru",
"ext": ""
}, {
"type": "email",
"subtype": null,
"contact": "alex@ bab iev.com",
"ext": ""
}, {
"type": "tel",
"subtype": "",
"contact": "123",
"ext ": " "
}, {
"type": "tel",
"subtype": "",
"contact": "123",
"ext ": " "
}];
for (var el, i = 0; i < data.length; i++) {
el = data[i];
alert(el.type + "\r\n" + el.subtype + "\r\n" + el.contact + "\r\n" + el.ext);
}
|
Интересно... когда я запускаю этот код, то все ок. Когда я делаю так:
ajax({
url:"/contacts.php?addrbook="+addrbook_uid,
method:"POST",
data:
{
//first_area:document.getElementById("area_1").value,
//second_area:document.getElementById("area_2").value
},
success:
function(data){
//document.getElementById("status").innerHTML=data;
alert(data);
for (var el, i = 0; i < data.length; i++) {
el = data[i];
alert(el.type + "\r\n" + el.subtype + "\r\n" + el.contact + "\r\n" + el.ext);
}
}
});
то получается вместо значений выводит UNDEFINED.
функция ajax тут http://i.babiev.com/js/ajax.js
почему такое может быть?
|
|
01.06.2014, 22:40
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
добавь
dataType: "json",
|
|
15.06.2016, 00:48
|
Интересующийся
|
|
Регистрация: 11.09.2012
Сообщений: 11
|
|
Сообщение от walik
|
ОЙ блин, тяжелый случай.
Почитайте про AJAX лучше.
JS получает то что выводится (echo, print, printf и т.д.) а не return.
$str = '"dav_vod_k_1":{"cvet":"'.dav_vod_k_1($row1, 1).'","znach":"'.dav_vod_k_1($row1, 0).'"},';
$str .= '"tem_ugaz_1":{"cvet": "'.tem_ugaz_1($row1, 1).'","znach":"'.tem_ugaz_1($row1, 0).'"}';
echo '({'.$str.'})';
А в JS уже пишите:
var obj = eval(data);
и обращаетесь так:
obj.dav_vod_k_1.cvet
Как то так короче.
Но почитайте получше про AJAX
Ну а потом и про JSON (ссылка выше)
|
Мда. Красиво сказано. Но работать не будет. Тем более, переменную, которая объявлена внутри AJAX, снаружи вообще никто не увидит. А те переменные, которые объявлены снаружи, внутри AJAX модифицировать бесполезно - снаружи эти изменения тоже никто не увидит!
|
|
15.06.2016, 05:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от reno4
|
Красиво сказано
|
Это вряд ли. Если вы сами собираетесь формировать JSON, значит нужно соблюдать соглашения. Самому же заниматься этим в рамках РНР/Javasript нет необходимости, и там, и там для этого уже есть готовое корректно выполняющее данную операцию.
|
|
|
|