2016-03-23 13 views
0

ユーザが選択すると、AJAXリクエストをPHPスクリプトに送信してデータベースに問い合わせ、その選択に一致する値を返す選択メニューがありますこれを関連する入力フィールドに挿入します。AJAX Request with empty result - 私たちのHTML入力フィールドをクリアする

これはすべてうまくいきますが、空の結果が返される可能性があることに対応する必要があります(これまでは常に一致する結果が返されました)。その場合、関連する入力フィールドから値を削除するか、この入力フィールドをクリアする必要があります。

[{"senderMobile":""}] 

ここでPHPスクリプトを呼び出して、更新AJAXコードだ:

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

、ここでは、空の結果を返すものです。ここで

は、どのような成功したAJAX要求を返します(JSONデータ)です入力フィールド:

$(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(''); 
    }); 
    }); 
}); 
関連する問題