Intereting Posts
Поиск внутри (пользовательские) описания таксономии Как создать пользовательский шаблон WooCommerce для конкретного продукта? Вызов функции-члена add_rule () для не-объекта Изменить постоянную ссылку на значение настраиваемого поля Скрипты и стили для Hook в WordPress Как вы можете обрабатывать правила перезаписи для настраиваемых типов сообщений с возможностью фильтрации на пользовательских таксономических условиях? могу ли я изменить URL-адрес register_post_type WP_Query или Simple Loop: петли не работают на пользовательских страницах или файлах шаблонов Плагин предотвращает работу кода galleria для WordPress не работает должным образом на мобильных устройствах (отзывчивый)? Пользовательский тип пересылки сообщений бросает заголовки отправленные ошибки Проверьте, отображается ли боковая панель? Как автоматически добавлять теги абзацев в Visual Editor Ошибка плагина после установки изменить значки видео на выбранный эскиз?

wordpress ajax не работает для выбора

Вот мой выпадающий список, который получается из базы данных.

<div class="col-sm-12"> <div class="form-group"> <div class="col-sm-12"> <label class="control-label col-sm-5">Project Choice <span>*</span> </label> <div class="col-md-7"> <select class="form-control" id="category" name="project_choice" required> <?php $the_query = array( 'orderby' => 'name', 'order' => 'ASC', 'parent' => 0 ); $categories = get_categories($the_query); foreach ($categories as $category) { ?> <option value="<?php echo $category->term_id; ?>"><?php echo $category->name; ?></option> <?php } ?> </select> </div> </div> </div> </div> 

вот мой раздел результатов, который связан с разделом категории выше.

 <div class="col-sm-12"> <div class="form-group"> <div class="col-sm-12"> <label class="control-label col-sm-5">Program <span>*</span> </label> <div class="col-md-7" id="results"> </div> </div> </div> </div> 

Вот мой скрипт enqueue для forntend пользователя.

 function my_enqueue() { wp_enqueue_script('ajax-script', get_template_directory_uri() . '/js/main.js', array('jquery'), '', true); wp_localize_script('ajax-script', 'main', array('ajax_url' => admin_url('admin-ajax.php'))); 

}

Это мой скрипт файла main.js

 $(document).ready(function () { $('#category').change(function () { $.ajax({ url: ajax_object.ajaxurl, type: 'POST', dataType: "html", data: { 'action': 'get_program_by_category', // this is name of your function that gets trigger 'datas': category // valuse you want to pass }, success: function (data) { debug(data); // result that return from function console.log(data); }, }); }); 

});

Первая проблема, которую я вижу, – это неправильный URL-адрес ajax. Ваш wp_localize_script() имеет имя дескриптора 'main', а не 'ajax_object'.

 url: main.ajaxurl 

Кроме того, где код обратного вызова для обработки get_program_by_category ajax get_program_by_category ? Вам не хватает двух действий.

 add_action( 'wp_ajax_my_action', 'my_action_callback' ); add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' ); 

См. WordPress Codex, чтобы узнать больше об использовании API AJAX .

Обновление # 1

Попробуйте использовать это для отладки. Вы должны получить всплывающее сообщение с сообщением «Успех» или «Сбой». Кроме того, данные будут записываться в консоль броузера.

 $.ajax( { url: main.ajaxurl, type: 'POST', dataType: "html", data: { 'action': 'get_program_by_category', 'datas': category } } ).done( function (r) { console.log(r); if ( r.success ) { alert( 'Success!' ); } else { alert( 'Failed!' ); } } ); 

Вам нужно сначала локализовать скрипт, а затем вы можете использовать enqueue.

 wp_localize_script('ajax-script', 'main', array('ajax_url' => admin_url('admin-ajax.php'))); wp_enqueue_script('ajax-script', get_template_directory_uri() . '/js/main.js', array('jquery'), '', true); 

Также в url вашего ajax, это должен быть url: main.ajaxurl и не url: ajax_object.ajaxurl