Javascript 为什么AJAX成功调用中的代码不起作用?
我有一个AJAX脚本,可以将表单中的数据插入MySQL数据库。这是AJAXJavascript 为什么AJAX成功调用中的代码不起作用?,javascript,php,jquery,mysql,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
<!-- 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 -->
$(“#f#u产品”)。在('submit',函数(事件){
event.preventDefault();
数据=$(this).serialize();
$.ajax({
类型:“POST”,
url:“”,
数据:数据
}).success(函数(){
警报(“产品列表已准备好打印”);
窗口。打开(“,”空白“);
窗口。打开(“,”_self“);
});
});
AJAX脚本成功地将数据从表单插入数据库。但不知何故,成功的剧本是行不通的。为什么?
此AJAX的行为包括:
- 将数据插入数据库-成功
- 显示警惕
- 打开新页面进行打印
- 将当前页面刷新为新表单
回调
函数的名称,而不是承诺
你应使用:
$.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");
}
});
我不确定是否有
.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");
}
});
$.ajax({
类型:“POST”,
url:“”,
数据:数据,
成功:函数(){
警报(“产品列表已准备好打印”);
窗口。打开(“,”空白“);
窗口。打开(“,”_self“);
}
});
根据
弃用通知:从jQuery 3.0开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将被删除。您可以改用jqXHR.done()、jqXHR.fail()和jqXHR.always()
如果将成功
替换为完成
,该怎么办
否则,
success
应该是您抛出到$.ajax({…})
中的对象的属性,匿名函数是它的值。您必须告诉我们当前和预期的行为是什么。我们不知道“不起作用”意味着什么。嗯,警报不会出现。不打开新页面进行打印,也不重新阅读当前页面。done/fail/always/then
是应该在延迟页面之外使用的选项<代码>成功将用作ajax的参数。检查浏览器开发人员工具是否存在错误,并添加错误处理程序,因为调用并不总是成功。检查我的answer@Dekel-在检查文档后,有,但不再推荐,因为该功能已被弃用。我使用firebug,它说jquery未定义。jquery.form.jsSo如果没有jquery,就不能使用它:)请确保从正确的路径加载jquery库。但是为什么正确插入数据呢?也许代码中的其他地方有其他错误,这会导致错误this@ashura91由于您没有在('submit',函数(事件)上加载jQuery,$(“#f_product”){
什么都不做,所以您得到的是正常的表单提交。我假设表单的操作
URL与您发送AJAX请求的URL相同。
$.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");
}
});