ajax-сом отсылаю на сервер запрос и получаю в xmlHttpRequest.responseText стринг "['Mercedes' : 1]" .
Далее сей стринг обрабатываю подомдным образом:
var ans = eval(xmlHttpRequest.responseText);
По идее, желаю получить ассоциативный массив с ключём "Мercedes" и значением "1", но фаербаг ругается, говорит что missing ] after element list
В чём может заключаться проблема?
Спустя 9 минут, 32 секунды (28.08.2010 - 23:53) vasa_c написал(а):
Потому что {}, а не [].
Спустя 5 минут (28.08.2010 - 23:58) print_f написал(а):
тогда фаербаг кричит что invalid label
Спустя 24 минуты, 57 секунд (29.08.2010 - 00:23) vasa_c написал(а):
потому что "{'Mercedes' : 1}" отдельно от всего, это конструкция языка.
сделайте что-нибудь типа:
или по другому извернитесь.
сделайте что-нибудь типа:
eval("var ans = " + xmlHttpRequest.responseText);
или по другому извернитесь.
Спустя 34 минуты, 28 секунд (29.08.2010 - 00:57) print_f написал(а):
В таком случае, в алерте получаю [objectObject]. Пробовал разные варианты, изгалялся как мог, но безрезультатно, пошёл курить мануалы.
Спустя 20 минут, 34 секунды (29.08.2010 - 01:18) Rivalryzerg написал(а):
print_f, [objectObject] и есть ваш массив. Попробуйте alert(ans['Mercedes']);
Вопрос не по теме: а почему не используете js-фреймворки, например jquery? Очень удобно работать с ajax-ответами в виде массивов.
Вопрос не по теме: а почему не используете js-фреймворки, например jquery? Очень удобно работать с ajax-ответами в виде массивов.
Спустя 10 минут, 51 секунда (29.08.2010 - 01:29) print_f написал(а):
Вот балбес! Спасибо.
А по поводу jquery, я эту тему только начал изучать, ещё не углубился в принципы работы с аяксом. Может быть посоветуете известные вам плагины, для ознакомления?
А по поводу jquery, я эту тему только начал изучать, ещё не углубился в принципы работы с аяксом. Может быть посоветуете известные вам плагины, для ознакомления?
Спустя 21 минута, 6 секунд (29.08.2010 - 01:50) Rivalryzerg написал(а):
Плагины не нужны. Посмотрите саму библиотеку: селекторы, ajax, события. Очень удобно и просто по сравнению с обычным яваскриптом, но главное - все кроссбраузерно.
Например вот простейший ajax-post запрос с использованием jquery:
В переменной reply ответ от сервера, в виде текста.
Но если мы добавим одну опцию в конце:
и на серверной стороне отправим массив:
То сразу можно работать с reply как с массивом:
Пример простой, без проверок на ошибки, но хотел лишь показать как просто и удобно с этим работать, используя jquery.
Например вот простейший ajax-post запрос с использованием jquery:
$.post('/admin/edit.php', {'id': '123'}, function(reply) {});
В переменной reply ответ от сервера, в виде текста.
Но если мы добавим одну опцию в конце:
$.post('/admin/edit.php', {'id': '123'}, function(reply) {}, 'json');
и на серверной стороне отправим массив:
$data = array(
'Mercedes' => 'Cool car',
);
echo json_encode($data);
То сразу можно работать с reply как с массивом:
function(reply) {
alert(reply.Mercedes);
}
Пример простой, без проверок на ошибки, но хотел лишь показать как просто и удобно с этим работать, используя jquery.
Спустя 14 минут, 16 секунд (29.08.2010 - 02:04) print_f написал(а):
Спасибо большое. Сейчас уже в голову ничего не лезет, но завтра обязательно вникну. На вид, действительно просто.
_____________
Быдлоскрипт — это скрипт, сделанный быдлокодером «с душою», либо злым кодером с жуткими умыслами.