2017-02-17 2 views
0

Привет, ребята, это довольно неловко. Я возвращаю строчную переменную от php до javascript. Там я хочу сделать простое сравнение и принять соответствующие меры, но результаты не так ожидаются.Сравните текст, возвращенный с PHP на JavaScript

Сначала я делаю сообщение в форму моего файла javascript для php для обработки.

$('#matchForm3').submit(function (event) { 
    var pr = $('#cprovider3').val(); 
    var amount = $('#camount3').val(); 
    var ctc = $('#ctc3').val(); 

    var formData = {'cprovider': pr, 'camount': amount, 'ctc': ctc, 'creceiver': rc3, 'ramount': ramount3}; 

    $.ajax({ 
     url: '/backend/matchForm.php', 
     type: 'post', 
     data: formData, 
     success: matchResponce, 
     error: function (xhr, desc, err) { 
      alert(xhr); 
      return false; 
     } 
    }); 

    return false; 

}); 

function matchResponce(data, status) { 
    //alert(data); 
    if (data != 'legit') { 
     //do something 
    }else { 
     //do something else 
    } 
} 

А потом в файле matchForm.php я сделать некоторые обработки и вернуть любого из двух возможных значений «законно» или «нет, нет».

//do something up here 

if(value == true){ 
    echo 'legit'; 
}else{ 
    echo 'no no'; 
} 

Теперь вернитесь в файле script.js в методе обратного вызова matchResponce(). Я хочу сделать эту проверку и действовать соответствующим образом, но каждый раз она соответствует первому условию, хотя данные разные. Заранее спасибо!!

+2

сбрасывать данные в функции js и видеть возвращаемые значения –

+0

, если (значение) уже делает это. Также используйте === и! == для сравнения строк. Есть ли место вне PHP-кода? (у меня была эта ошибка часто) –

+0

Чтобы просмотреть данные, возвращенные в JavaScript, попробуйте 'console.log (data);' вместо 'alert()', который преобразует сообщение в текст. Он покажет вам, есть ли у вас текст (строка), JSON, XML или все, что вы получили. –

ответ

0

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

if($myProcess) { 
    echo 1; 
} else { 
    echo 0; 
} 

как ваш оператор return в matchForm.php. Это проверит, будет ли ваш процесс оцениваться как «истинный» и «эхо» «1» или «ложный», а также «0». Отсюда

function matchResponce(data, status) { 
    //alert(data); 
    if (data == 1) { 
    //do something 
    }else { 
    //do something else 
    } 
} 

проверяет возврат и переходит вперед.

+0

Пробовал это, но он все еще не работал должным образом. В каждом случае выполняется первое условие, поэтому я только «что-то делаю». Он никогда «ничего не делает» –

+0

звучит так, как будто ваш код где-то испорчен. вы можете заставить его потерпеть неудачу? – bowl0stu

0

Я исправил его сейчас, все, что мне нужно было сделать, это сначала преобразовать переменные данные в целое число, прежде чем делать сравнение с целыми константами, чтобы гарантировать, что оба операнда не совпадают с целым типом. Теперь это выглядит функция обратного вызова matchResponce().

function matchResponce(data, status) { 

    var h = parseInt(data); 
    //alert(h); 
    if (data == 0) { 
     //do something 
    } else (data == 2) { 
     //do something else 
    } 

} 
Смежные вопросы