如何使用 post (ajax) 执行 IF / ELSE?

How to perform an IF / ELSE with a post (ajax)?

我有两个页面,一个是 php 页面,另一个是 html 页面。我使用$.post方法调用php页面(执行一些功能),return数据到html页面并将数据插入文本框。但是我对 JQuery 不太熟悉,我不知道如何创建 if / else 语句以防 php 页面产生错误。

我的 php 页面检查异常,如果发现异常,我希望 html 页面在文本字段中插入错误消息。

try{  
$ip=getIP();
$country = geoCheckIP($ip, $date);
echo json_encode(array('ip' => $ip, 'country' => $country, 'campaignID' => $campaignID));
}catch (Exception $e){
echo json_encode(array( 'errormsg' => $date . ' - Error: ' . $e->getMessage()));
}

然后在我的 html 页面上,我使用 post 方法调用我的 php 页面并将值插入文本框。

<script type="text/javascript">
$.post("ip.php", function( data ){
$("#ip").val(data.ip);
$("#country").val(data.country);
$('#campaignID').val(data.campaignID);
$('#error').val(data.errormsg);
}, "json");
</script>

如何执行 if else 语句,以便在 ip、国家或活动 ID 出现错误时,我只填写错误文本字段?

您可以检查 errormsg 属性 是否填写如下:

if(data.errormsg) {
    $('#error').val(data.errormsg);
} else {
    $("#ip").val(data.ip);
    $("#country").val(data.country);
    $('#campaignID').val(data.campaignID);
}

但要做得更好(归功于@itachi)

$.post("ip.php", function( data ){
    //handle success
    $("#ip").val(data.ip);
    $("#country").val(data.country);
    $('#campaignID').val(data.campaignID);
}, function( data ){
    //handle fail
    $('#error').val(data.errormsg);
});

当您使用上述代码时,您还应该 return 来自 PHP 的适当状态代码。