Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Работа с Json при помощи prototype.js (Ajax)


Автор: AtaL 29.1.2007, 14:28
Посадили изучать аякс, все, как обычно, срочно. smile Помогите, пожалуйста.
Работа идет с библиотекой prototype.js, задача следующая: при загрузке страницы забрать код из файла-источника, вставить как <option>...<option>  в выбранный селект.

Возникла проблема с форматом Json, не знаю, как привести его к нужному виду.

что получилось:

Код

function a() {
        var url = "http://developer5.dzu/?action=JsonTest";
        var pars = $F('models');
        alert(url);
        var myAjax = new Ajax.Request(url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: fillSelect
        });
    }


при этом в функции fillSelect() в originalRequest.responseText оказывается полный текст исходного txt-файла:


{models: [

  
  {"model": "SE"}
,
  
  {"model": "Motorola"}
,
  
  {"model": "Nokia"}

]}


Значения "model" должны быть подставлены в теги <option></option>.

С задачами подобного рода до сих пор не сталкивалась, так что в данный момент запуталась абсолютно. smile Подскажите, плз.

Автор: AtaL 29.1.2007, 16:38
updated:

заработал следующий код:

Код

var data = eval('('+originalRequest.responseText+')');


В data оказывается массив объектов, далее все просто. Оказалось, способ неверный, задача стоит на использование evalJSON().

Кто-нибудь может привести пример использования?

Автор: Sardar 29.1.2007, 17:56
AtaL, по идее разницы почти никакой.   http://www.formar.se/prototype/doku.php?id=ajax:ajax.request:evaljson достаёт JSON код из заголовка X-JSON что генерит твой сервер, а в твоём последнем посте ты берёшь код из responseText. В итоге используется eval, только источник инфы разный. Подумай где она находиться, выбери "правильный" метод.

Автор: AtaL 30.1.2007, 18:39
Да, в ходе экспериментов пришла к тому же выводу smile Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)