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