Моя функция возвращает строку, но сравнение всегда неверно - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть функция PHP, которая возвращает истину или ложь в виде строки (это работает).Если я загляну в свой файл JS, я создаю окно предупреждения с responseText XMLHttprequest (это также работает).Но как только я пытаюсь сравнить строку ответа с другой строкой, результат всегда ложен.

Я уже искал stackoverflow, но не нашел ответа.Я также пробовал str.equals (""), а также возвращал логическое значение с php, но ничего не получалось.

Javascript:

xhttp.onload = function(){
    alert(xhttp.responseText); //Here comes "true" or "false" just like I want it
    if(xhttp.responseText == "true"){ //This always gives me "ERROR and then the responseText (which is true or false)
        alert("TRUE");
    }else if(xhttp.responseText == "false"){
        alert("FALSE");
    }else{
        alert("ERROR" + xhttp.responseText);
    }
};

PHP:

if(count($echo)==3){
            if($tag==$echo[2]){
                echo "true";
                break;
            }else if($i == (count($fahrten)-1)){
                echo "false";
            }
        } 

Ожидаемый результат: предупреждение с «ИСТИНА» или «ЛОЖЬ» фактический результат: предупреждение с «Ошибка», за которым следует responseText

Я надеюсь, что некоторые из вас могут помочь мне, и вопрос не слишком глуп, яЯ все еще изучаю это для проекта scholl.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Ваше xhttp.responseText == "true" сравнение всегда будет возвращать false. Вместо этого я бы попытался упростить ваши условия:

xhttp.onload = function(){
    alert(xhttp.responseText);
    if (xhttp.responseText) {
        // true case
        alert("TRUE");
    }
    else {
        // false case
        alert("ERROR" + xhttp.responseText);
    }
};
0 голосов
/ 24 декабря 2018

Попробуйте обрезать responseText перед сравнением:

xhttp.onload = function(){
    var responseText = xhttp.responseText.trim();

    alert(responseText); //Here comes "true" or "false" just like I want it
    if(responseText  == "true"){ //This always gives me "ERROR and then the responseText (which is true or false)
        alert("TRUE");
    }else if(responseText  == "false"){
        alert("FALSE");
    }else{
        alert("ERROR" + responseText );
    }
};
...