Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript逻辑失败?_Javascript_Jquery - Fatal编程技术网

Javascript逻辑失败?

Javascript逻辑失败?,javascript,jquery,Javascript,Jquery,这一点我真的很困惑。我正在尝试做一个简单的ajax请求,我让php执行'echo“true”;'如果ajax请求成功,则返回包含错误的字符串(如果未成功)。我在代码的其他地方使用了这种精确的技术,它会按预期进行比较(msg!=“true”){//do something}。下面我将发布的第一个函数使用该方法,第二个不使用(我正在使用Firebug检查响应是否为“true”,并且我已经完成了console.log(typeof msg)以验证它是否为string类型) 这正如预期的那样工作(php

这一点我真的很困惑。我正在尝试做一个简单的ajax请求,我让php执行'echo“true”;'如果ajax请求成功,则返回包含错误的字符串(如果未成功)。我在代码的其他地方使用了这种精确的技术,它会按预期进行比较(msg!=“true”){//do something}。下面我将发布的第一个函数使用该方法,第二个不使用(我正在使用Firebug检查响应是否为“true”,并且我已经完成了console.log(typeof msg)以验证它是否为string类型)

这正如预期的那样工作(php回显“true”,并执行show_step2()):

这不起作用(php响应“true”,但js总是执行代码的slideDown()部分):


这是怎么回事?

您的php可能会输出一些不可见的东西,比如“true”后面的换行符。要么确保调用
die()
退出(),或者在
之前确保PHP编辑器中没有换行符


您还可以通过尝试类似于
msg的操作来检查字符串是否以“true”开头,而不是以“true”开头。substring(0,4)=“true”

检查返回消息的内容类型或将其设置为text/plain。执行此操作时,
警报(“+msg+”)
检查是否有由PHP产生的空格,下划线可以帮助您查看
msg
字符串前后的空格。如果找到空白,考虑使用<代码> .Times()/代码>()来删除它们。谢谢本,这帮助了很多。我在ajax函数中加载的模型中,在结束php标记(?>)之后,我将其追溯到一个额外的行。看来我需要提高我的调试技能;)所有的推荐都很好,不过如果任何垃圾角色在true之前,子字符串就没什么用处了。@Ben true,我想如果它在Firebug之前,他更可能在Firebug中注意到它。虽然我在
之前说过要检查,但你是对的。在PHP中加载的模型中,在结束PHP标记后有一个空行。
function step2_register() {
  var values = $('.signup .txt').serialize();

  $.ajax({
    type: "POST",
    url: base_url+"login/create_account",
    data: values,
    success: function(msg) {
      if (msg != "true") {
        $("#login_form.signup .error_container #error1").html(msg).css("visibility", "visible");
      }
      else {
        show_step2();
      }
    },
    error: function(error) {
      alert(error);
    }
  });
}
    function register() {
  var data = $("#login_form .input").serialize();

  $.ajax({
    type: "POST",
    url: base_url+"login/register",
    data: data,
    success: function(msg) {
      if (msg != "true") {
        $("#login_form.signup #error2").html(msg).slideDown();
      }
      else {
        show_success();
      }
    },
    error: function(error) {
      alert(error);
    }
  });
}