带有空结果的AJAX请求 - 清除我们的HTML输入字段

时间:2016-03-23 10:17:22

标签: javascript php jquery html ajax

我有一个选择菜单,当用户做出选择时,它会触发对PHP脚本的AJAX请求以查询数据库并返回与选择匹配的值并将其插入到关联的输入字段中。

这一切都运行良好,但我现在需要满足可能返回空结果的可能性(到目前为止总是返回匹配的结果)。如果是这种情况,则需要从关联的输入字段中删除该值/清除此输入字段。

这是成功的AJAX请求返回的内容(JSON数据):

[{"senderMobile":"0412 345 678"}]

以及空结果返回的内容:

[{"senderMobile":""}]

这是调用PHP脚本并更新输入字段的AJAX代码:



$(document).ready(function() {
  $("#smsFromName").change(function() {
    var smsFromName = $("#smsFromName").val();
    console.log(smsFromName);
    $.post('getSMSSender.php', {
      senderName: smsFromName
    }, function(data) {
      data = JSON.parse(data);
      if (data.error) {
        alert("error");
        $("#smsFrom").html('');
        return; // stop executing this function any further
      } else {
        console.log(data[0].smsFrom);
        $("#smsFrom").val(data[0].senderMobile);
      }

    }).fail(function(xhr) {
      $("#smsFrom").html('');
    });
  });
});




我收集我需要更新此部分以包含一个选项,如果没有数据可以简单地清除#smsFrom输入字段:

} else { 
console.log( data[0].smsFrom );
$("#smsFrom").val(data[0].senderMobile);

但我现在很难过。

2 个答案:

答案 0 :(得分:0)

您只需要检查senderMobile是否有值。试试这个:

if (data.error) {
    alert("error");
    $("#smsFrom").html('');
    return; // stop executing this function any further
} else if (data[0] && data[0].senderMobile) {
    console.log(data[0].smsFrom);
    $("#smsFrom").val(data[0].senderMobile);
} else {
    $("#smsFrom").val(""); // or .html(""); I didn't get what kind of element is this...
}

答案 1 :(得分:0)

您可以尝试检查空字符串的响应数据。 代码应如下所示:

$(document).ready(function() {
  $("#smsFromName").change(function() {
    var smsFromName = $("#smsFromName").val();
    console.log(smsFromName);
    $.post('getSMSSender.php', {
      senderName: smsFromName
    }, function(data) {
      data = JSON.parse(data);
      if (data.error) {
        alert("error");
        $("#smsFrom").html('');
        return; // stop executing this function any further
      } else {
        if(data[0].senderMobile == ""){
           $("#smsFrom").empty();
           continue;
        }else {
         console.log(data[0].smsFrom);
         $("#smsFrom").val(data[0].senderMobile);
         }
      }

    }).fail(function(xhr) {
      $("#smsFrom").html('');
    });
  });
});