Как использовать форму для отправки запроса ajax в функцию php в wordpress, а затем отправить возвращаемое значение функции (постоянная ссылка на сообщение) обратно в мой ответ функции ajax, чтобы открыть новую вкладку для этого конкретного сообщения?
Моя функция php в functions.php
:
function zip_search($userZip){
$args = array(
'posts_per_page' => -1,
'post_type' => 'Locations'
);
$wp_query = new WP_Query($args);
if ( $wp_query->have_posts() ): while( $wp_query->have_posts() ) : $wp_query->the_post();
$zipField=get_field('zip_codes_services');
$zipString = $zipField . ', ';
$array = explode(', ' , $zipString); //split string into array seperated by ', '
foreach($array as $value) //loop over values
{
if ($value==$userZip){
$post_id = get_the_ID();
$permalink=get_permalink($post_id);
return ($permalink); //print
}
}
endwhile;
wp_reset_postdata();
endif;
}
Моя форма на первой странице моего сайта:
<form id = "zip_search_form" action = "" method = "post"><input class = "form-control search-input" autocomplete = "off" name = "zipcode" type = "text" value = "" placeholder = "Enter Zip Code" /></form><input type = "submit" />
Javascript, который я пробовал:
$("form#zip_search_form").on("submit", function(event) {
$('form#zip_search_form .clear-button').addClass('active');
event.preventDefault();
all_locations_map_ajax_filter();
});
//Our main ajax call
function zip_search_ajax_filter(){
var filters = [];
var zipcode = $('form#zip_search_form input[name = "zip_search"]').val();
//process the form
$.ajax({
type: "POST", // define the type of HTTP verb we want to use (POST for our form)
dataType : "json",
url: ajaxcall.ajaxurl,
data: {
"action": "zip_search", //calls the function in the functions.php file
"zipcode": zipcode
},
success: function(response) {
if (response.length > 0){
//remove the current markers
$(this).html(response)
}
}
})}
Я попытался немного изменить Javascript, но безуспешно. У меня это содержится в папке js
с именем файла scripts.js
. Я пробовал читать документы AJAX, но я не совсем уверен, как он захватывает данные формы и т. д. Или где именно я должен поместить их в свою файловую структуру. Любой совет приветствуется.
Итак, моя первая проблема в том, что я даже не уверен, что запрос AJAX вообще отправляется с моим текущим кодом.
Ваш вопрос в настоящее время слишком общий. Пожалуйста, сделайте некоторую отладку, чтобы сузить проблему. «Я не знаю, как использовать ajax» не подходит для ответа здесь.
Неважно, проверьте вкладку «Сеть» в хроме. Вы можете обнаружить, что вызов AJAX работает или нет
И, пожалуйста, проверьте свою консоль для получения дополнительной информации об ошибках, а также поделитесь с нами
@PatrickQ знаете ли вы какие-либо простые примеры использования формы для отправки запроса ajax, вызова функции php и отправки возвращаемого значения функции обратно?
Такие вещи можно найти, выполнив поиск в Google (или даже здесь, в SO). Запрос ссылок на учебные пособия также не по теме. Найдите время, чтобы провести собственное исследование. По этой теме есть много информации.
Я написал простой пример много лун назад. Сюда входит просмотр инструментов разработчика в вашем веб-браузере.
@DanielRogers Сначала немного раздражает запрос AJAX в WordPress, но вам понравится этот процесс. Пожалуйста, свяжитесь со мной по адресу [email protected], чтобы мы могли общаться и помогать друг другу.
В чем проблема? Это обновление / перенаправление перед отправкой запроса AJAX?