2015-06-13 92 views
0

下面是我尝试实现的:假设我有两个文件,order.php和print.php。在order.php中有一个用于打印一些数据的按钮。当用户点击按钮时,我想将一些数据从order.php发布到print.php。简单。但是如何?通过ajax发布数据到新标签

这是我最后一次尝试这样做。

$.ajax({ 
    type: 'POST', 
    url: '../event/print', 
    async: false, 
    data: {json:$("input[name=json]").val(),id:"2"}, 
    success:function(data){ 
     myWindow = window.open('../event/print', "_blank"); 
     myWindow.focus(); 
    }, 
    error:function(data){ 
     swal("Oops...", "Something went wrong.", "error"); 
    } 

它每次都向我显示错误警报和500内部服务器错误。 我做错了什么?

编辑 我改变了网络上的一些东西,现在它不显示任何错误。但我不能看到任何$ _POST参数。

+0

我认为,用户还多哥打印?如果是这样,为什么使用ajax?另外,你应该检查服务器上发生了什么问题。我认为这是您的网站,所以如果您正在开发中进行调试,或者如果您无法进行调试,请检查您的日志。 – Dacker

+0

你只是想添加一个新标签?如果是这样,您只需要window.open http://www.w3schools.com/jsref/met_win_open.asp并将数据作为查询参数传递。你在这里使用“文件”这个词是令人困惑的,但在上下文中没有任何意义。 – Brian

+0

500内部服务器错误意味着服务器出现问题,某些异常发生在服务器端。 – Dreamweaver

回答

0

通过这种方式您可以两次调用页面../event/print。

第一次作为POST请求通过AJAX,第二次作为GET请求,因为您打开了一个新选项卡。

你所描述的不是一个AJAX请求,它只是一个带有target =“_ BLANK”的表单。

http://www.w3schools.com/tags/att_form_target.asp

<form action="../event/print" method="post" target="_blank"> 
... 
+0

不完全,但你是对的。我正在使用Nette框架,这里不容易设置表单动作。所以我使用了会话。 Thanx :) – kristyna

+0

也许分配一个唯一的ID到“打印”一个使用过程中得到。它更干净,更具可扩展性。 – B3rn475