Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax + jquery..не получается 
:(
    Опции темы
EmilRegis
Дата 13.11.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: нет
Всего: 4



Добрый день...Прикрутил к своему проектику jquery и раз уж так случилось, решил укоротить код и переписать ajax-запрос под jquery...
Вот так выглядит мой старый код и всё работает
Код

function changelogin(login){
    if(login.length == 4)
        get_ajax_info('/WebData/pb.wb_pict_updownload.get_imgpath?username_=' + login);
}

function get_ajax_info(url_){
    var res_data;
    if (window.XMLHttpRequest) {
        var req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {    
        var req = new ActiveXObject("msxml2.XMLHTTP");
    } 
    if (req) {
        req.onreadystatechange = function proc_req() {    
            var ready = req.readyState;
            if (ready == 4) {
                res_data = ""+req.responseText;   
                req = null;
                onAjaxSuccess(res_data);
            } 
            
        }
        req.open("get", url_, true);
        req.send(null);
    }             
return false          
}

function onAjaxSuccess(res_data){
...
}


а вот так выглядит код переписанный под jquery
Код

function changelogin(login){
    if(login.length == 4){
              $.post(
            '/WebData/pb.wb_pict_updownload.get_imgpath',
            {username: login},
            onAjaxSuccess
           );
    }    
}
function onAjaxSuccess(res_data){
...
}

и он не работает...При этом я могу видеть, что при нужном мне событии данные куда-то улетают))то есть идёт соединение, но на этом всё...Возможно в этом случае у меня адрес неправильно прописан?

Это сообщение отредактировал(а) EmilRegis - 13.11.2009, 10:17
PM MAIL   Вверх
IDVsbruck
Дата 13.11.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 4
Всего: 22



Возможно, и адрес. А на сервере нет возможности посмотреть, выполняется ли код/скрипт?
Плюс, если на сервере не менялось, то там обработка может стоять GET-протокола, а тут POST.

Советую использовать $.ajax() - там есть обработчик как success, так и error - при отладке значительно удобнее.
PM MAIL   Вверх
Любитель
Дата 13.11.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Как минимум, в одном случае у вас гет, в другом пост. И с разным именем параметра. Вы уверены, что на сервере они одинаково обрабатываются?!


--------------------
PM MAIL ICQ Skype   Вверх
EmilRegis
Дата 14.11.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: нет
Всего: 4



да уверен...дело в том, что я отчаявшись пробовал и с гетом и с постом)) и ни то, ни другое не работало...
Серверный код, так уж сложилось, написан на pl/sql, которому помоему вообще не важно гетом или постом ему данные приходят...
действительно наверное посмотрю $.ajax()

Добавлено через 59 секунд
Цитата(Любитель @  13.11.2009,  22:48 Найти цитируемый пост)
И с разным именем параметра
 а вот это не очень понял...где там разное имя параметра? в обоих случаях имя username

Добавлено через 2 минуты и 3 секунды
ёмаё...я ж чёрточку пропустил
PM MAIL   Вверх
Любитель
Дата 14.11.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



С "чёрточкой" работает? smile


--------------------
PM MAIL ICQ Skype   Вверх
EmilRegis
Дата 14.11.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: нет
Всего: 4



всё, теперь заработало...просто надо было имя параметра написать username_, а я написал username
PM MAIL   Вверх
yalo
Дата 22.11.2009, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: 2
Всего: 2



читала тему чтобы самой научиться быстро аякс подключать через jquery, вроде все понятно, но не понятен один момент (конкретно на данном примере): каким образом при переписывании яакса под джквери мы в функцию onAjaxSuccess передаем непосредственно то, что допереписывания называлось res_data = ""+req.responseText;
Ничего не пропущено в месте
Код

$.post(
            '/WebData/pb.wb_pict_updownload.get_imgpath',
            {username: login},
            onAjaxSuccess
           );


и если не пропущено, то каким волшебным образом дальнейшая функция
Код

function onAjaxSuccess(res_data){
...
}


знает, что принимаемый в нее параметр res_data - это тот самый req.responseText?
PM MAIL ICQ   Вверх
Любитель
Дата 22.11.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



jQuery умеет обрабатывать респонс., выдёргивая данные. Причём различным образом для разных типов данных (для get/post по дефолту - html).


--------------------
PM MAIL ICQ Skype   Вверх
yalo
Дата 22.11.2009, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: 2
Всего: 2



Цитата(Любитель @  22.11.2009,  12:39 Найти цитируемый пост)
jQuery умеет обрабатывать респонс., выдёргивая данные. Причём различным образом для разных типов данных (для get/post по дефолту - html)


что-то так и не поняла ответа на свой вопрос.. я догадываюсь, что jQuery должен уметь обрабатывать респонс, иначе бы он был бы ущемленной библиотекой по части ajax, что не рационально при наличии прочих таких замечательных способностей, но где тут ответ на то, что я спросила?..
PM MAIL ICQ   Вверх
Любитель
Дата 22.11.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Этот колбек вызывает jQuery, данные берутся (в текущей версии) через jQuery.httpData. В чём вопрос-то, я не пойму тогда? smile


--------------------
PM MAIL ICQ Skype   Вверх
yalo
Дата 22.11.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: 2
Всего: 2



Цитата(Любитель @  22.11.2009,  20:32 Найти цитируемый пост)
 чём вопрос-то, я не пойму тогда? 

ну вот смотрите, Любитель, smile раньше были такие строчки (до переписывания)
Код

                res_data = ""+req.responseText;   
                req = null;
                onAjaxSuccess(res_data);

ну и ниже описание этой функции onAjaxSuccess, потом переписали и получили:
Код

function changelogin(login){
    if(login.length == 4){
              $.post(
            '/WebData/pb.wb_pict_updownload.get_imgpath',
            {username: login},
            onAjaxSuccess
           );
    }    
}
function onAjaxSuccess(res_data){
...
}

и вроде как после переписывания функция onAjaxSuccess в ее определении тоже принимает параметр, но где видно в коде $.post( ... ), что этим параметром у onAjaxSuccess будет ответ респонз? или в этой обертке post (так кажется называется?..) третий параметр - функция всегда принимает входящим параметром респонз? без вариантов то есть?..
PM MAIL ICQ   Вверх
Любитель
Дата 22.11.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Ну так вы доках по jQuery же всё написано! По сути, в данном случае можно смотреть доку по jQuery.ajax (почти цитирую):

success (как раз этот колбек) - A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the 'dataType' parameter, and a string describing the status.
...
jQuery will intelligently pass either responseXML or responseText to your success callback



--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.