如何从PHP传递正确的数据类型到Javascript

时间:2013-05-22 14:28:45

标签: php javascript jquery

我正在使用jQuery post方法在MySQL中创建记录。当我使用==评估PHP的输出时,所有三个条件都正常工作。但是,当我使用===时,前两个条件会返回false。如何从PHP传递正确的数据类型到Javascript?

jQuery的:

$("#form").validate({

    submitHandler: function(form) {
        // do other stuff for a valid form
        $.post('inc/process_form.php', $("#form").serialize(), function(data) {
            //alert(data);
            if (data == 1) {
                $('#results').html("Success");
            } else if (data == 2) {
                $('#results').html("No Success");
            } else {
                $('#results').html(data);
            }
        });
    }
});

这是PHP(我已经截断它只显示执行条件):

$value = $stmt->execute();

if ($value === TRUE) {
echo 1; //success
} else {
echo 2; //failure
}

3 个答案:

答案 0 :(得分:3)

试试这个:

if(parseInt(data) === 1){

问题是返回变量data是一个字符串,你不能做任何事情(据我所知)从PHP返回它作为一个整数。

正如Marc Costello所说的那样,这会使===无用,因为你强迫双方都是整数,所以data == 1在这种情况下更好。

答案 1 :(得分:0)

我从来不需要这样的东西,但如果你真的需要,你可以简单地使用+data投射它:

data = +data;
if (data === 1) {
     $('#results').html("Success");
} else if (data === 2) {
     $('#results').html("No Success");
}

答案 2 :(得分:0)

在这种情况下,你可以从php

传递布尔值而不是0或1,即true或false