比较从PHP返回的文本到JavaScript

时间:2017-02-17 18:22:13

标签: javascript php jquery ajax

大家好,这太尴尬了。我从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文件中。我希望进行相应的检查并采取相应措施,但每次都满足第一个条件,即使数据不同。在此先感谢!!

2 个答案:

答案 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
    } 

}