Проблемы при использовании AJAX
При использовании расширений с формами, такие как "Гостевая книга", "Поиск" на сайте с AJAX'ом имеется следующая проблема.
После отправки содержимого формы при нажатии на кнопку "Submit" не получается на ходу засунуть содержимое новой сгенерированной страницы в нужный слой. При работе со ссылками просто меняю href на "#" и добавляю параметр onClick=getAJAX(...), а вот как быть с формами - там ведь после "Submit" выполняется функция обработки формы из расширения. Подскажите, пожалуйста, как можно решить такую проблему? С AJAX'ом связался из-за того, что для навигации используется дерево (расширение Foldout Menu), а оно (дерево) при большом количестве страниц на сайте генрится достаточно долго. Поэтому и решил перегружать только только часть страницы, чтоб дерево каждый раз не генерилось. Может быть можно настроить расширение Foldout Menu, чтобы дерево не генерилось каждый раз при открытии новой страницы и не использовать AJAX? Тогда бы проблем было меньше :) |
Вроде, точно так же можно перехватить через onSubmit = doAJAX();return false;
Хотя вообще логичней тогда уж и дерево строить на AJAX тоже. |
Через onClick=getAJAX(...) на кнопке "Submit" тоже не получается - страница все также грузится на все окно без остальных слоев с интерфейсом, включая дерево. А если добавлять после "onClick" еще и "return false;", то тсраница вообще не обновляется.
А что даст, если дерево тоже строить на AJAX? Не совсем понял. Кстати, а как сделено в BackEnd TYPO3? На фреймах? Там ведь тоже не перегружается вся страница. |
4.0 - на фреймах
|
В 4.1b3 - уже на AJAX.
Prost, не на onClick у кнопки. А onSubmit у формы. Возвращая false, форма действительно не отправляется, но никто не мешает скрыть её и отправить через метод submit() формы. |
Попробовал для гостевой книги у формы onsubmit="getAJAX ('index.php?id=ID_стр_гост_книги','ID_слоя'); return false" но данные не заносятся в гостевую книгу.
void, а для чего дерево тоже строить на AJAX? |
Для того, чтобы не перезагружать страницу каждый раз при сворачивании-разворачивании узлов.
А что код не работает - это вполне логично) |
Цитата:
Цитата:
Основная задержка, я так думаю, связана с инициализацией дерева каждый раз при открытии новой страницы. Все вышеизложенное относится, конечно же, для случая без использования AJAX. А можно ли сделать так, чтобы проинициализировать дерево один раз при загрузке сайта, хранить его где-то, а затем использовать при каждом переходе на новую страницу? |
Цитата:
Цитата:
"Где-то" хранить не стоит. Варианта два:
|
Часовой пояс GMT +4, время: 01:38. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot