0

我正在使用 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
}
4

3 回答 3

3

尝试这个:

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

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

正如 Marc Costello 的评论所建议的那样,这使得它===没有用,因为你强制两边都是整数,所以data == 1在这种情况下更好。

于 2013-05-22T14:32:51.487 回答
0

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

data = +data;
if (data === 1) {
     $('#results').html("Success");
} else if (data === 2) {
     $('#results').html("No Success");
}
于 2013-05-22T14:36:57.597 回答
0

在这种情况下,您可以从 php 传递布尔值而不是 0 或 1,即 true 或 false

于 2013-05-22T14:51:11.163 回答