Intereting Posts
Получить идентификатор строки из базы данных одним нажатием кнопки Насколько быстрее налоговый запрос, чем мета-запрос? Проблема с кэшем с WP_Query и настраиваемой полевой фильтрацией Когда подходящее время для минимизации css и js с помощью рабочего процесса git? Как отображать фотографию автора В WordPress без какого-либо плагина? Не удалось импортировать медиа с локального сайта WordPress в живое Как добавить атрибут data-slug = "$ specfic_page_slug" в пункт меню WordPress? start_lvl игнорируется в пользовательском walker_nav_menu Автоматическое создание ссылки на сброс пароля Как отображение Последнее изменение в профиле wordpress Пользовательский тип сообщения в теме не отображается Как я могу ограничить доступ к пользовательской роли WordPress только для определенного плагина? Назначить категорию с помощью настраиваемого поля? Страница wp-admin пуста Как создать дочернюю тему с темой Tesseract?

Обновление get_pages с помощью ajax при изменении формы

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

То, что я пытаюсь сделать, это обновить переменные get_pages, используя ajax (без обновления страницы) при изменении выпадающих меню. Я могу видеть данные, которые возвращаются в консоли firebug, но, похоже, не вернут его обратно в php-код / ​​переменные.

Любая помощь будет принята с благодарностью, с.

<?php if ( isset($_POST['sortables']) ) : $sortables = $_POST['sortables']; else : $sortables = 'menu_order'; endif; if ( isset($_POST['ascdesc']) ) : $ascdesc = $_POST['ascdesc']; else : $ascdesc = 'asc'; endif; ?> <script type="text/javascript"> jQuery(document).ready(function($) { $("#sort, #ascdesc").change(function() { var $form = $("#myForm"); var dataString = $form.serialize(); $.ajax({ type: "POST", url: "<?php the_permalink(); ?>", data: dataString, success: function() { console.log(dataString); } }); }); }); </script> <?php $thispage=$post->ID; ?> <section id="list-boxes"> <form action="<?php the_permalink(); ?>" method="post" id="myForm" style="margin:5px 0 15px;"> <select name="sortables" id="sortables"> <option value="menu_order"<?php if ($_POST['sortables'] == 'menu_order') echo 'selected="selected"'; ?>>Sort by Menu Order</option> <option value="post_title"<?php if ($_POST['sortables'] == 'post_title') echo 'selected="selected"'; ?>>Sort by Title (Alphabetically)</option> <option value="post_date"<?php if ($_POST['sortables'] == 'post_date') echo 'selected="selected"'; ?>>Sort by Date Created</option> <option value="post_modified"<?php if ($_POST['sortables'] == 'post_modified') echo 'selected="selected"'; ?>>Sort by Date Modified</option> </select> <select name="ascdesc" id="ascdesc"> <option value="asc"<?php if ($_POST['ascdesc'] == 'asc') echo 'selected="selected"'; ?>>Ascending</option> <option value="desc"<?php if ($_POST['ascdesc'] == 'desc') echo 'selected="selected"'; ?>>Descending</option> </select> <button type="submit" id="sort-submit">Sort</button> </form> <?php $pages = get_pages('child_of='.$thispage.'&sort_column='.$sortables.'&sort_order='.$ascdesc.'&parent='.$thispage.'&number=2'); $count = 0; foreach($pages as $page) : $content = $page->post_excerpt; $link = get_page_link($page->ID); ?> 

Solutions Collecting From Web of "Обновление get_pages с помощью ajax при изменении формы"

Ваш Javascript загружает всю страницу в любом случае, так как вы отправляете запрос на the_permalink . Если вы собираетесь это сделать, просто перезагрузите страницу.

Во-первых, вы должны использовать API AJAX . Есть несколько шагов, но это не так сложно. Для начала ознакомьтесь с Кодексом.

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