| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Применение библиотек > Ext.ajax.query |
| Автор: asagi 8.7.2011, 22:10 | ||
| Здравствуйте, форумчане! Вот начал изучать недавно замечательный фреймворк EXTJS. Столкнулся с простецкой проблемой... Есть функция, из которой делается ajax запрос в скрипт. Мне нужно, что бы эта функция возвращала ответ, однако я столкнулся с некоторыми сложностями. Привожу код функции: Код:
Alert показывает undefined. Подскажите, где я мог ошибиться? Область видимости переменной или что?? |
| Автор: нуп 8.7.2011, 22:13 |
| Скорей всего запрос асинхронный, для него надо alert писать в функции success |
| Автор: asagi 8.7.2011, 22:17 |
| нуп, alert всего лишь как средство диагностики. Функция должна возвращать ответ от скрипта forms.php. Но в ответе пустота, хотя php скрипт отдает данные нормально |
| Автор: нуп 8.7.2011, 22:26 |
| Ваш ответ придет в функцию success! Перед ответом выполнится функция ex_ajax_form и вернет пустоту. |
| Автор: asagi 8.7.2011, 22:40 |
| нуп,я чет под ночь торможу А что нужно сделать, что бы функция не возвращала пустоту? Как мне из succes передать ответ в ex_ajax_form? Можете привести фрагмент кода? |
| Автор: нуп 8.7.2011, 22:45 |
| Сделать запрос с ожиданием ответа. async: false . Если вам это подойдет. |
| Автор: asagi 9.7.2011, 07:28 |
| нуп, спасибо, а для асинхронного запроса есть решение? |
| Автор: нуп 9.7.2011, 10:20 | ||
Да, надо в success функцию(или вместо нее) передавать вашу функцию, которую надо будет вызвать
|
| Автор: asagi 9.7.2011, 19:57 |
| Нуп, спасибо! Ща будем пробовать.... |
| Автор: asagi 10.7.2011, 22:28 |
| Нуп, скопировал твой код к себе..не работает :( Firebug говорит, что callback_func, не есть функция :( Добавлено через 4 минуты и 8 секунд Изменил тип запроса на синхронный, но все равно, проблема та же...%) |
| Автор: нуп 10.7.2011, 23:35 |
| Переименуйте на function ex_ajax_form(form, callback) ну и вызов сам тоже |
| Автор: asagi 11.7.2011, 08:07 | ||||
Нуп, все равно не работает...Но вот что я заметил. Если функция такая:
То alert показывает undefined, но при этом функция работает. Возвращает то, что ей выдает скрипт forms.php. А если код функции такой:
То функция перестает работать. Как это понимать? Почему с alert работает, а без уже нет?? |
| Автор: нуп 11.7.2011, 10:26 |
| Отдает ли сервер вообще что-то? Добавлено через 17 секунд Что вы посылаете, и что приходит? |
| Автор: asagi 11.7.2011, 12:06 | ||||
нуп, сам php скрипт forms.php работает адекватно. В него передается:form=edit_profile_p1, а в ответ приходит форма редактирования профиля. Если делать вручную (тупо передать в forms эту переменную) все работает. Проблема именно в JS и я не пойму в чем именно. Вызов делаю так:
И собственно функция, в её изначальном варианте:
В итоге alert говорит undefined, а вот в окно загружается нужная форма. Но стоит убрать alert как ничего не грузится. |
| Автор: нуп 11.7.2011, 12:37 |
| Для вашего случая, надо ставить async : false. |
| Автор: asagi 11.7.2011, 15:37 |
| нуп, да ставил...никакой разницы :( |
| Автор: нуп 11.7.2011, 16:27 | ||
| Та не может быть! Добавлено через 13 минут и 9 секунд а такое
|
| Автор: asagi 12.7.2011, 10:25 | ||||||
Показывает - object Object
Показывает правильный ответ от сервера. Форма html....
Показывает undefined...Чудеса |
| Автор: нуп 12.7.2011, 11:39 |
| Да попробовал сам, не выходит. Используйте тогда callback функцию. |
| Автор: asagi 12.7.2011, 13:46 |
нуп, прости, что надоедаю, а иначе никак? |
| Автор: нуп 12.7.2011, 13:49 |
| Я не использовал Ext. погуглите |
| Автор: asagi 12.7.2011, 18:02 |
| нуп, панятно, спасибо за помощь |