【问题标题】:jQuery Ajax success submit condition issuejQuery Ajax 成功提交条件问题
【发布时间】:2016-05-04 10:35:18
【问题描述】:

我有一个提交到 php 文件的表单,该 php 文件将检查记录是否存在。如果存在,它将回显“已经存在”。在我的ajax“成功”中,它确实看到了“已经存在”,但是当我放置一个条件时它不起作用。例如,在我的 ajax 函数成功下,我放置了以下内容

$.ajax({
    type: "GET",
    data: $('#minifrm').serialize(),
    url: "CRUD/myfile.php?check=" + para + "&freq=" + freq + "&expire=" + expire,
    success: function (status) {
        if (status.success == false) {
            alert("Your details we not saved");
        } else {
            var checkstatus = status.toString();

            if (checkstatus === 'Already Exists')
            {
                alert("You are here");
            }
            if (checkstatus === '')
            {
                alert("There is nothing");
            }
        }
    }
});

目前它会回显“已经存在”并提醒“你在这里”,但如果它不存在,则不会提醒“什么都没有”。

【问题讨论】:

  • 你从 php 文件返回什么?
  • 你在这里设置值 checkstatus = 'Already Exists' 使它成为 checkstatus == 'Already Exists'
  • 如果status.success 为假,它肯定会调用failed 回调而不是success 回调,对吧?
  • 如果您有一个具有status.sucess 的对象,那么status.toString() 肯定会拥有该对象的.sucess 部分吗?你能在 else 中对你的状态对象做一个console.log 并显示结果吗

标签: javascript php ajax


【解决方案1】:

使用等于== 的双精度而不是单个= 来比较两个变量,如下所示:

if(checkstatus == 'Already Exists')
  {
    alert("You are here");  
  }

【讨论】:

  • 更好的是,使用三等式===,这样就不会有真值/假值的问题。
  • 是的,我们也可以使用trim() 来删除结果变量中的空格。有时我们会在从服务器获取响应时附加空格。
  • @TapuwaSimonMundeta Triple equal 可能不起作用,因为您正在比较不同的日期类型,如字符串和整数。在这里使用双等于
  • @Taps101 如果您要比较两种不同的类型,请确保您知道比较会给您的真值和假值
【解决方案2】:

您使用单个等于 = 意味着它将以这种方式在变量中分配该值,在您的情况下,您当前不会获得所需的输出,如果条件执行,代码执行时会发生什么情况,它将在 checkstatus 变量中分配“已经存在”。所以使用了使用double等于==。编写您的条件检查代码,如下所示。

if (checkstatus == 'Already Exists')
            {
                alert("You are here");
            }
            if (checkstatus == 0)
            {
                alert("There is nothing");
            }

【讨论】:

  • 由于某种原因,它会看到“已经存在”,但是当我想要检查状态时它没有通过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
相关资源
最近更新 更多