Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jQuery, динамические селекты + Json (ajax) = баги


Автор: BeliyFenix 10.9.2008, 19:58
Сразу скажу с Ajax'ом знаком весьма недавно, вчера решил освоить фреймворк jQuery, ибо стало нужно сделать на одном проектике несколько фич.

На данный момент есть код который через Json запрашивает данные на сервере и генерит полученные данные в options'ы заданного select. Но вот незадача, все прекрасно работает в Firefox'e 2, и совсем не работает в Explorer 6 и Opera 9.

Кодировку в utf-8 c заголовками в рнр скрипте ставить пробовал, не помогло.

Помогите разобраться в чем тычка.

java script:

Код

var path                = '/ajax/get_related_structure.php';// путь до вызываемого скрипта
var element_name        = 'lvl';                            // базовое имя элементов

// Запускаем инициализацию всех обработчиков после загрузки
$(document).ready(function(){
    
    var num = 1;
    var pid = 0;
    var count = 0;
    
    $.getJSON(path+"?id=" + pid,
    function(data)
    {
        $.each(data.items, function(i,item)
        {
            $("<option>").attr("value", item.id).text(item.name).appendTo("#"+element_name+num);
        });
    });
});



Html код:

<select name="lvl1_id" id="lvl1" style="width: 150px"></select>


Вот ссылки на работающие примеры моего кода:
http://www.smailer.ru/totalrating/test_ajax.html
http://www.smailer.ru/totalrating/test_ajax2.html
Ссылка на выдачу РНР скрипта

В примерах в полях встречаются знаки вопроса, собственно сорри было лень с кодировкой БД разбираться (отдается все в utf-8 а залил в cp1251).

Блин и еще я не понимаю в чем может быть дело. Для тестов сделал страницу с одним широко распространненым примером JSON запроса и выборки фоток вот с этой выдачи
http://api.flickr.com/services/feed...;jsoncallback=?.

Положил вот сюда: http://www.smailer.ru/totalrating/test_ajax3.html.

Так вот, все равно мой пример не срабатывает в ИЕ, в мозиле все гуд. Пробовал в своем пример происать обращение по вышеприведенному адресу и вывести сурсы картинок, все гуд.

Header'ы прописал у своего скрипта такие же как и те которые выдает корректный пример, кодировку поставил utf-8 точно.

Адрес обращения просто в кавычках задавать пробовал.

Что еще может сработать? В чем может быть загвоздка?

Неужели никто не сталкивался??? 

Автор: yantar 12.9.2008, 12:49
У меня тоже такой же баг, но я возвращаю в формате xml
Не работает, потому что в експлорере вы не попадаете сюда
Код

$.each(data.items, function(i,item)
{
$("<option>").attr("value", item.id).text(item.name).appendTo("#"+element_name+num);
}



Разве, что не через each делать, а через document.getElementsByTagName

Автор: BeliyFenix 13.9.2008, 01:10
Я обязательно копну в этом направлении, но меня удивляет что стандартный пример из доков по Jquery отрабатывает нормально.

Автор: yantar 15.9.2008, 13:14
2 BeliyFenix: дайте стандартный пример с доков, где обрабатывается объект xmlhttprequest

Автор: yantar 16.9.2008, 11:34
Уже решил проблему, смотрите http://phpclub.ru/talk/showthread.php?s=&threadid=110270&rand=17

Автор: xoma 23.9.2008, 22:16
Не стал открывать новую тему...может конечно зря...

Подскажите пожалуйста как с применением Jquery, выполнить следующие действия...

1) удалить все элементы option заданного selecta...
2) сделать выбранным определенный пункт selecta....

Как добавить новые опции я уже понял из этого поста, спасибо автору!
Если возможно киньте ссылочкой!
В гугле нашел только какой-то плагин для работы с селектами, но не хотелось бы его применять!

Спасибо!

Автор: BeliyFenix 24.9.2008, 09:03
Смотри все те же примеры:
http://www.smailer.ru/test_ajax.html
http://www.smailer.ru/test_ajax2.html

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