Аякс с Аяксом. Это возможно - PullRequest
1 голос
/ 09 июля 2009

У меня есть страница php. Это имеет несколько изображений, которые выглядят как вкладки. На этой странице php у меня есть div, который будет загружать разные PHP-страницы по клику разных изображений, о которых я упоминал ранее. Это делается с помощью Ajax. Это большая часть прекрасно работает без перезагрузки страницы. Это сделано для имитации операции вкладки без перезагрузки страницы. Это большая часть работает нормально.

Но теперь мне нужно выполнить операцию поиска в одном из внутренних файлов php. Когда я использую это, используя Ajax на kepup, чтобы выполнить операцию поиска и отобразить результат в другом div с внутренним php, он становится php внутри php и другим php в него. Всего 3 слоя php со всеми загруженными с помощью ajax.

Я столкнулся с проблемой на данном этапе. Первый слой, который является операцией вкладки, прекрасно работает с AJAX. следующий уровень поиска с использованием ajax также работает, но также перезагружает внешний php. Таким образом, похоже, что вкладка нажата вместо операции поиска. Так что теперь я сталкиваюсь с путаницей, как будто концепция загрузки формы с помощью ajax и последующего поиска в ajax внутри себя, чтобы отобразить результат с помощью keyup, будет ли это правильно? это будет возможно?

Так что, я сделал это неправильно или у меня нет возможности использовать эту опцию? Потому что, когда я загружаю внутренний php напрямую с url без ajax, поиск работает отлично. Возможно ли это проще, используя воспламенитель кода. Пожалуйста, дайте мне знать ваши комментарии по этому, а также ваши предложения. Я уверен, что у вас будет много вопросов о том, что я задал. Пожалуйста, дайте мне знать ваши вопросы, я постараюсь ответить на них. Все предложения приветствуются. Заранее спасибо.

Ответы [ 6 ]

1 голос
/ 19 августа 2009

Я думаю, что вы путаете AJAX с фреймом здесь.

При использовании фреймов вы загружаете страницы внутри родительской страницы, и обычные операции на дочерних страницах не влияют на родительские. Когда вы используете AJAX, думайте, что это вставка контента на текущую страницу, и какой бы вставленный контент не стал частью страницы, и какое бы действие там ни выполнялось, это не повлияет на дочернюю страницу в ajax.

Для вашей проблемы, как уже упоминали многие, вы должны инициировать обратную передачу (например, отправку формы) при нажатии Поиск, что приводит к перезагрузке страницы.

0 голосов
/ 19 августа 2009

Содержимое, возвращаемое вызовом AJAX для предоставления вкладки, должно содержать код AJAX JavaScript для его собственной операции и выполняться самостоятельно. Большинство фреймворков должно позволять это, используя что-то вроде «evalScripts: true».

Например, во вкладке содержится результат первого вызова AJAX (ПОСЛЕ самой формы):

<script>
   $('ajaxpostform').addEvent('submit', function(e) {
        new Event(e).stop();
        var update = $('ajax_content');
        this.send({
            update: update,
            evalScripts: true,
        });
   });
</script>

Это написано с использованием Mootools и предполагается, что id формы - «ajaxpostform». Единственное предостережение - убедиться, что в исходном вызове AJAX, который получил вкладку, также есть «evalScripts: true». Это должно работать, я использовал это раньше.

0 голосов
/ 18 августа 2009

Кнопка "поиск" заставляет fosrm отправлять? :) Ваша идея работает (я уже сделал что-то подобное), но у вас должна быть ошибка в вашем коде

0 голосов
/ 17 августа 2009

Это должно работать.

Я думаю, что где-то вы заставляете его перезагрузить всю страницу, а не только DIV. Такие вещи, как кнопки отправки, сделают это.

Есть ли у вас где-нибудь в части javascript ссылки поиска на родительское окно? или родительский объект? Возможно, вы действительно вызываете всю страницу, когда пытаетесь вызвать соответствующую вкладку.

0 голосов
/ 09 июля 2009

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

0 голосов
/ 09 июля 2009

Теоретически идея должна работать. Если возможно, можете ли вы предоставить мне больше информации?

Вопросы:

Ваша установка похожа на эту?

Родительский HTML (родительский)> (innverdiv1) DIV, в котором вкладки загружают страницы с помощью AJAX> (innerdiv2) DIV внутри загруженных страниц

Потому что теоретически вы можете сделать так, чтобы страница, загруженная Ajax (innverdiv1), также выполняла ajax, но домен новой страницы (innerdiv2) должен быть ограничен только DIVS внутри первой страницы, загруженной ajax.

...