在Ajax中,成功部分總是執行。但是如果出現錯誤,我不想執行正常;相反,我想顯示錯誤消息。如果折扣代碼存在,然後顯示/隱藏一些div與代碼,然後重定向,否則顯示錯誤消息,我們在錯誤div中的json響應。我怎樣才能做到這一點?如果json結果失敗,如何顯示錯誤信息?
這裏是JSON響應:
{result: "fail", msg: "Code is not valid", redirect: 0}
控制器:
if($result == 'exp'){
$discount_arr ['result'] = 'fail';
$discount_arr['msg'] = 'Promotion code expired';
$discount_arr['redirect'] = 0;
}else{
$discount_arr ['result'] = 'success';
$discount_arr['msg'] = 'Valid Code';
$discount_arr['url'] = base_url('cart');
$discount_arr['redirect'] = 1;
}
echo json_encode($discount_arr);
HTML:
<div class="cart-secondary cart-discount-code">
<label for="cart_Code">
Discount Code </label>
<input type="text" class="discount-code" name="cart_discountCode" id="cart_discountCode">
<span class="error coupon-error"></span>
<div class="confirm-coupon"></div>
<button type="submit" value="addCoupon" name="addCoupon" id="add-coupon" onclick="checkStatus()">
Apply </button>
的Ajax:
function checkStatus(){
var discount_code = $(".cart-secondary .cart-discount-code .discount-code").val();
$.ajax(
{
url : "<?php echo base_url('cart/validate/'); ?>",
type : "POST",
data : {discount_code: discount_code} ,
cache : false,
dataType:'json',
statusCode: {
404: function() {
alert("page not found");
}
},
success:function(data, textStatus, jqXHR)
{
if(textStatus == 'success'){
$('input[name=cart_discountCode]').val(discount_code);
$('.cart-secondary .cart-discount-code-show span').html(discount_code);
$(".cart-discount-code").fadeOut();
$(".cart-discount-code-show").fadeIn();
if(data.redirect){
window.location.reload();
}
}
},
error: function(jqXHR, textStatus, errorThrown) {
//if fails
console.log(errorThrown);
}
});
}
請幫
即使我的結果是失敗的,它取代了div和所有應該發生的只有當結果是成功@low_rents – Snehal
@Snehal看到我的更新,我發現了另一個錯誤。 –
感謝您糾正:-) @low_rents – Snehal