-1

为了响应 Ajax 请求,我的 php 文件要么echo true要么echo false. 在我的 JavaScript 文件中,我想根据响应调用两个函数之一。我显示的内容xmlhttp.responseText并发现它是 1 所以我尝试了

if(xmlhttp.responseText == 1)
{
  funcA()
}
else
{
  funcB()
}

if(xmlhttp.responseText === 1)
{
  funcA()
}
else
{
  funcB()
}

funcB()总是被调用。如果我想funcA()在响应为 true 时被调用,我应该在 JavaScript if 语句中检查什么?

好的,一个答案说将整数转换为字符串,另一个答案说将字符串解析为整数。我试过了,两种方法都有效,一种方法比另一种方法快吗?

有时我坚信问题不应该被否决,这就是其中之一。我没有看到的一个缺点是,如果我尝试在我的 PHP 页面中输出某些内容(例如echo()var_dump()),那么这个 JavaScript 将始终评估为真。

4

2 回答 2

2

当您responseText将成为字符串时,您正在执行完全匹配。您可以将 responseText 类型转换为整数(通过parseInt())或进行松散检查(将 === 替换为 ==)。任何一种解决方案都可以解决问题。

于 2013-04-04T18:33:21.830 回答
1

如果 php 回显一个布尔值,您应该能够像这样检查条件下的响应:

if (xmlhttp.responseText) {
    funcA();
else {
    funcB();
}

条件会自动为您转换为布尔值。

于 2013-04-04T18:37:18.737 回答