我有两个服务器端PHP脚本: 1:/addit.php - 根据给定的当前ID在服务器上创建pdf文件 2:/viewit.php - 将pdf文件下载到浏览器窗口。
这两个脚本都运行良好顺便说一句。 但是,我想组合一个onclick函数来运行“addit.php”,然后通过打开文件“view.php”来查看该文件。 所以我使用原始代码创建文件ok然后添加一个window.location但它们不能一起工作。如果我删除window.location,代码的第一部分工作正常,如果我包含它,第一部分停止工作,只有window.location工作。
抱歉愚蠢,谢谢。
function download_invoice() {
$(document).on('click','.downloadit',function(id){
var current_element = $(this);
var id = $(this).attr('id');
var ida = $(this).attr('id')+"A";
var idicon = $(this).attr('id')+"icon";
$.post('myaddress/addit.php',
{ list_entry_id: id },
$("#infobox_data_button2").fadeTo(1001,.33)
);
});
window.location="myaddress/viewit.php";
};
答案 0 :(得分:3)
您应该将window.location="myaddress/viewit.php";
移至ajax回调,如下所示。否则它会在您收到服务器响应之前触发。
$.post('myaddress/addit.php',
{ list_entry_id: id },
function() {
$("#infobox_data_button2").fadeTo(1001,.33);
window.location="myaddress/viewit.php";
}
);
答案 1 :(得分:2)
window.location不在事件中。当您将ajax(异步)运行到'myaddress / addit.php'时,将发生重定向,从而终止进程。
您需要将window.location置于成功回调中,因此在事件中。
function download_invoice() {
$(document).on('click','.downloadit',function(id){
var current_element = $(this);
var id = $(this).attr('id');
var ida = $(this).attr('id')+"A";
var idicon = $(this).attr('id')+"icon";
$.post('myaddress/addit.php', { list_entry_id: id }, function(data){
$("#infobox_data_button2").fadeTo(1001,.33);
// Here!
window.location="myaddress/viewit.php";
});
});
// Abandoned
//window.location="myaddress/viewit.php";
};