javascript - 为什么 AJAX 成功调用中的代码不起作用?

标签 javascript php jquery mysql ajax

我有一个 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");
    }
});

或者完成 promise :

$.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");
});

关于javascript - 为什么 AJAX 成功调用中的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233734/

相关文章:

javascript - native Javascript 警报 - 样式覆盖删除新行功能

c# - 字符串未定义

php - 将行插入远程和本地数据库 mysql

jquery - 数据表回调

javascript - 如果选中复选框如何调用函数,如果未选中如何从附加列表中删除

php - 无法使用php向mysql插入数据

php - 使用 PHP DOMDocument 更改标签属性值

Javascript 到空白文本框值不会工作,但 jquery 确实

javascript - 在 jquery 中的 textarea 上触发更改事件

javascript - toDataURL 不是函数