Ajax не работает после добавления оператора if? - PullRequest
0 голосов
/ 09 февраля 2020

Я чувствую, что совершаю действительно очевидную ошибку. Пожалуйста, потерпите меня, я только начал изучать jquery и ajax.

В принципе, я думаю, что-то не так с моим утверждением if. Все остальное работает правильно: ajax был успешно вызван, и значение возвращенных данных было "нет". Однако, как только я введу оператор if, все команды в операторе if не будут выполнены. Что я делаю неправильно?

Html:

<button class='clicky'>Click Me</button>

<section class='modal'>
    <p>Some text</p>
</section>


<script>
        $(document).ready(function(){
            $(".clicky").on('click', function(){
                $.ajax({
                    url: "indexFunct.php", 
                    type: "POST", 
                    success: function(data){
                        //alert with data if successfully called ajax; showed data = "no" 
                        //alert(data); 

                        //does not alert with data if code for alert is inside if statement 
                        if(data==='no')
                        {
                        alert(data);
                        }
                    }, 
                    error: function(er){
                        alert('error'); 
                    }
                })
            }); 
        }); 
    </script>

тест. php:

<?php echo "no"; ?> 

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Очевидная причина, по которой ваш if(data==='no') не работает, состоит в том, что data - это , а не "no". Это может быть, например, "no " (с конечным пробелом) или "no\n", где \n - это символ новой строки .

Почему вы получаете пробел или символ новой строки в выходных данных? Потому что они есть в вашем php -файле.

Что делать? Удалите их вручную.

Если ваш php файл состоит только из php -кода, вы можете опустить закрывающий ?>, чтобы не выводить что-либо после последнего echo, вашего теста. php становится:

<?php echo "no";
0 голосов
/ 09 февраля 2020

Решение:

Поставьте console.log(data) и подтвердите ответ.

В ваших данных есть пробел "<?php echo "no"; ?>" <--- здесь, перед кавычками </p>

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