簡體   English   中英

為什么AJAX成功調用中的代碼不起作用?

[英]Why is code in AJAX success call is not working?

我有一個AJAX腳本,可將數據從表單插入MySQL數據庫。 這是AJAX。

<!-- SUBMIT FORM VIA AJAX -->
$("#f_product").on('submit',function(event){ 
    event.preventDefault();

    data = $(this).serialize();

    $.ajax({
    type: "POST",
    url: "<?php echo site_url('con_product/ins_product'); ?>",
    data: data
    }).success(function() {
        alert("Products list is ready to be printed");
        window.open("<?php echo site_url('con_product/print_product'); ?>","_blank");
        window.open("<?php echo site_url('con_product/form_product'); ?>","_self");
    });
});
<!-- END SUBMIT FORM VIA AJAX -->

AJAX腳本成功將數據從表單插入數據庫。 但是以某種方式,成功的腳本不起作用。 為什么?

此AJAX的行為是:

  • 將數據插入數據庫-成功
  • 顯示警報
  • 打開新頁面以進行打印。
  • 將當前頁面刷新為新表單。

successcallback函數的名稱,而不是promise

您應該使用:

$.ajax({
    type: "POST",
    url: "<?php echo site_url('con_product/ins_product'); ?>",
    data: data,
    success: function() {
        alert("Products list is ready to be printed");
        window.open("<?php echo site_url('con_product/print_product'); ?>","_blank");
        window.open("<?php echo site_url('con_product/form_product'); ?>","_self");
    }
});

還是done承諾:

$.ajax({
    type: "POST",
    url: "<?php echo site_url('con_product/ins_product'); ?>",
    data: data
}).done(function() {
    alert("Products list is ready to be printed");
    window.open("<?php echo site_url('con_product/print_product'); ?>","_blank");
    window.open("<?php echo site_url('con_product/form_product'); ?>","_self");
});

我不確定是否有.success函數。 但是您可以嘗試以下操作:

$.ajax({
    type: "POST",
    url: "<?php echo site_url('con_product/ins_product'); ?>",
    data: data,
    success: function(){
        alert("Products list is ready to be printed");
        window.open("<?php echo site_url('con_product/print_product'); ?>","_blank");
        window.open("<?php echo site_url('con_product/form_product'); ?>","_self");
    }
});

根據http://api.jquery.com/jquery.ajax/

棄用通知:從jQuery 3.0開始,刪除了jqXHR.success(),jqXHR.error()和jqXHR.complete()回調。 您可以改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

如果success代替success怎么done

否則, success應該是您使用匿名函數作為值將其放入$.ajax({...})中的對象的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM