Intereting Posts
get_comment_meta не ведет себя так, как ожидалось Версия плагина не обновлена ​​с новой версией Есть ли способ разместить социальные плагины facebook в php-файлы шаблонов страниц? wp_editor для персонализированного типа сообщения не сохраняет значение Фоновое изображение сбрасывается после времени (XAMPP) Получение идентификатора изображения заголовка, даже если оно задано случайным Многопользовательский конфликт WordPress wp-запрос для получения дочерних страниц текущей страницы Создание запроса с переменной тега также добавлено для более подробных результатов Загруженное изображение не отображается в пользовательском типе сообщения WP-REST всегда возвращает все сообщения WordPress пропускает роли пользователя на локальной машине. Живой сайт отлично работает Получить активный термин на одной (CPT) странице Пользовательская загрузка страницы по wp_query Как изменить размер встроенного проигрывателя WordPress или показать только кнопку воспроизведения

Обновление 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 .