Тестирование данных JSON в AJAX - PullRequest
0 голосов
/ 13 июня 2018

У меня есть куча сообщений о собственности, каждая из которых имеет статус Sold, For Sale или SSTC.Я захватил статус каждого свойства в моем functions.php и передал его моему AJAX js.Теперь я хочу проверить, какое состояние имеет текущее свойство, чтобы я мог применить разные ссылки к каждому из них.Я создал оператор if, который попытался выполнить эту задачу, а затем console.logs, чтобы увидеть, работает ли он.Но все, что я получаю, это первое, если операторы ценят кучу раз.Я считаю, что это может быть связано с асинхронностью, но я не знаю, как это обойти.

вот мой код;

jQuery(function($){
    $('#filters').submit(function(e){
        e.preventDefault();

        var filter = $('#filters');


        $.ajax({
            url: ajax_url,
            data: filter.serializeArray(), // form data
            // type:filter.attr('method'), // POST
            dataType: 'json',
            beforeSend:function(xhr){

            },
            success:function(response){
                $('#response').empty();

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

                    if(response[i].status = "Sold"){
                        console.log("Sold");
                    }else if(response[i].status = "For Sale"){
                        console.log("For Sale");
                    }else{
                        console.log("SSTC");
                    }

                    var html =""+
                        "<div class='col-sm-6 col-md-4 col-lg-3 post'>" +
                            "<div class='shadowwrapper2'>" +
                                "<a href='" + response[i].permalink + "'>" +
                                    "<div class='propertywrapper'>" +
                                        "<img class='img-fluid gal_imgs' src='" + response[i].image + "' alt='alt'/>" +
                                        "<span class='second_flash'>" + response[i].second_flash + "</span>" +
                                    "</div>" +
                                    "<div class='propertyinfo'>" +
                                        "<div class='row m-0'>" +
                                            "<div class='col-6 p-0 mt-2'>" + response[i].property_type + "</div>" +
                                            "<div class='col-6 p-0 mt-2'>" + response[i].bedrooms + " bedrooms</div>" +
                                        "</div>" +
                                    "</div>" +
                                    "<div class='streetpricewrapper'>" +
                                        "<p class='streetname'>" + response[i].street + ", " + response[i].town + "</p>" +
                                        "<p class='price'>£" + response[i].price + "</p>" + 
                                    "</div>" +                    
                                "</a>" +
                            "</div>" +
                        "</div>";

                    $('#response').append(html);
                }
            }
        });
    });
});

1 Ответ

0 голосов
/ 13 июня 2018

В Javscript вам нужно использовать == для оценки состояния.

if(response[i].status == "Sold"){

И для сохранения типа рекомендуется использовать тройные равенства (===).

Подробнее см. В этом вопросе: Оператор равенства (== vs ===) должен использоваться в сравнениях JavaScript?

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