大家好,这太尴尬了。我从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文件中,我做了一些处理并返回两个可能的值中的任何一个" legit"或者"不是"。
//do something up here
if(value == true){
echo 'legit';
}else{
echo 'no no';
}
现在返回到回调方法matchResponce()中的script.js文件中。我希望进行相应的检查并采取相应措施,但每次都满足第一个条件,即使数据不同。在此先感谢!!
答案 0 :(得分:0)
我建议不要返回字符串值,而是返回整数。字符串值容易出现用户输入错误,而不是数字。尝试,
if($myProcess) {
echo 1;
} else {
echo 0;
}
作为matchForm.php中的return语句。这将检查您的流程是否评估为' true'和回声' 1'或者' false'回声' 0'。从这里开始,
function matchResponce(data, status) {
//alert(data);
if (data == 1) {
//do something
}else {
//do something else
}
}
检查回报并继续前进。
答案 1 :(得分:0)
我现在修复了它,我所要做的就是先将变量数据转换为整数,然后再对整数常量进行比较,这是为了确保两个操作数都是相同的整数类型。现在这就是回调函数matchResponce()的样子。
function matchResponce(data, status) {
var h = parseInt(data);
//alert(h);
if (data == 0) {
//do something
} else (data == 2) {
//do something else
}
}