2016-03-23 138 views
0

我有一個選擇菜單,當用戶做出選擇時,它會觸發對PHP腳本的AJAX請求以查詢數據庫並返回與選擇相匹配的值並將其插入到關聯的輸入字段中。AJAX請求空結果 - 清除我們的HTML輸入字段

這一切都很好,但我現在需要迎合可能返回一個空結果(直到現在總是返回匹配結果)。如果是這種情況,則需要刪除相關輸入字段中的值/清除此輸入字段。

下面是一個成功的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); 

,但我在這一點難倒。

回答

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... 
} 
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(''); 
    }); 
    }); 
});