[英]Why is code in AJAX success call is not working?
I have an AJAX script to insert data from a form to MySQL database. 我有一个AJAX脚本,可将数据从表单插入MySQL数据库。 This is the AJAX. 这是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 -->
The AJAX script successfully insert data from the form to database. AJAX脚本成功将数据从表单插入数据库。 But somehow, the script on success is not working. 但是以某种方式,成功的脚本不起作用。 Why? 为什么?
The behavior of this AJAX are: 此AJAX的行为是:
The success
is the name of the callback
function and not the promise
. success
是callback
函数的名称,而不是promise
。
You should use: 您应该使用:
$.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");
}
});
Or the done
promise: 还是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");
});
I'm not sure if there is .success
function. 我不确定是否有.success
函数。 But you can try this: 但是您可以尝试以下操作:
$.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");
}
});
According to http://api.jquery.com/jquery.ajax/ 根据http://api.jquery.com/jquery.ajax/
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. 弃用通知:从jQuery 3.0开始,删除了jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。 You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead. 您可以改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。
What if your replace success
with done
? 如果success
代替success
怎么done
?
Otherwise, success
should be a property of the object you throw into $.ajax({...})
with the anonymous function as its value. 否则, success
应该是您使用匿名函数作为值将其放入$.ajax({...})
中的对象的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.