WordPress AJAX-вызов возвращает неопределенный - PullRequest
0 голосов
/ 22 февраля 2019

** Отредактировал более подробно, спасибо за вашу помощь.

Я пытаюсь создать поиск AJAX на моем сайте Wordpress для фильтрации свойств по типу, местоположению и статусу.

Я новичок в AJAX и следовал некоторым инструкциям, чтобы добраться туда, где я сейчас, но застрял в последней части.Кажется, что все работает, но когда я перебираю свой вызов AJAX с помощью цикла for, он возвращает undefined

Код из файла JS

$ = jQuery;

var bedSearch = $("#prop-search");

var searchForm = bedSearch.find("form");

searchForm.submit(function(e){
    e.preventDefault();

    var data = {
        action : "prop_search",
        status : bedSearch.find("#status").val(),
        location_of_accom : bedSearch.find("#location").val(),
        propertytype : bedSearch.find("#property_type").val()
    };

    $.ajax({
        url : ajax_url,
        data : data,
        success : function(response) {


            bedSearch.find("ul").empty();

            for(var i = 0; i < response.length ; i++) {
                console.log(response[i]);
            }

        }
    });

});

Код для обратного вызова AJAX(в functions.php):

// create ajax callback

add_action ('wp_ajax_prop_search', 'bed_search_callback');
add_action ('wp_ajax_nopriv_bed_search', 'bed_search_callback');

function bed_search_callback() {

    $status1=0;
    if(isset($_GET['status'])) $status = $_GET["status"];

    $location_of_accom = 0;
    if(isset($_GET['location_of_accom'])) $location_of_accom = $_GET["location_of_accom"];

    $propertytype = 0;
    if(isset($_GET['propertytype'])) $propertytype = $_GET["propertytype"];

    $result = array();

    $args = array(
        "post_type" => "accomodation",
        "posts_per_page" => -1
    );



    $args['meta_query'][] = array (
        'key' => 'status',
        'value' => $status,
        'compare' => "LIKE"
    );

    $args['meta_query'][] = array (
        'key' => 'location_of_accom',
        'value' => $location_of_accom,
        'compare' => "LIKE"
    );

    $args['meta_query'][] = array (
        'key' => 'propertytype',
        'value' => $propertytype,
        'compare' => "LIKE"
     );





     $bed_query = new WP_Query( $args );

    while ($bed_query->have_posts() ) {

        $bed_query->the_post();

        $result[] = array(
            "id" => get_the_ID(),
            "title" => get_the_title(),
            "permalink" => get_the_permalink()
        );


}


        echo json_encode($result);

        wp_die();  
}

Для справки: я следовал этому руководству, которое работало отдельно от самого последнего шага, где я не могу распечатать его, как он показывает.Мой выводит по одному символу за раз:

https://www.youtube.com/watch?v=Ol8aBPmjdmA

Мой вывод: Снимок экрана с выводом

1 Ответ

0 голосов
/ 22 февраля 2019

Ваш ответ должен быть в формате массива, объекта или json, чтобы увидеть его в цикле for.в файле php, когда вы возвращаете значение, убедитесь, что оно было возвращено в 1 из 3 типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...