Задать вопрос
@xaruki

Как передать несколько ответов ajax?

Приветствую.

Только начал изучать js, ajax, php :)

На WordPress делаю фильтр по двум связанным спискам select-option через ajax.
При переключении первого списка, идет фильтрация постов по выбранному значению и должны меняться option у второго списка.
Т.е. кликаю по первому списку, берется id выбранной категории, аяксом передается в function.php
$query = new WP_Query( $args );
 
	if( $query->have_posts() ) :
		while( $query->have_posts() ): $query->the_post();
			echo '<h2>' . $query->post->post_title . '</h2>';
		endwhile;
		wp_reset_postdata();
	else :
		echo 'No posts found';
	endif;


формируется ответ и возвращается в js, где данные подгружаю в html:
$('#response').html(data); // insert data

Подгрузку данных во второй select, в зависимости от выбора в первом, тоже нужно делать через ajax, но у меня function.php возвращает посты.
Я так понимаю, нужно сделать две обработки в function.php. Одну для формирования постов (уже реализовано), а вторую, для формирования option. И вернуть два результата в js.
Подскажите, как это реализовать? Может как-то через JSON? Если да, то как туда засунуть две обработки (распарсить потом я вроде смогу).

Объяснил, как мог:)

Спасибо!
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Загружайте все содержимое Ваших списков изначально при загрузке страницы. Затем js-ом делайте выборку списка для второго списка исходя из значения первого списка. Таким образом Вы избавляете сервер от одной и той же работы при ajax запросах. Как я полагаю, значения списков будут меняться в админке, поэтому на этапе сохранения нового значения собирайте готовые списки и сохраняйте ( в options например). Тогда при загрузке страницы просто прочитайте опцию и отправьте содержимое в браузер, где им займется JS.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы