【发布时间】:2013-02-26 18:04:32
【问题描述】:
我正在使用 CakePHP 1.3 和 TCPPDF 使用 print_pdf.ctp 打印 PDF 文件。打印后,我无法将页面重定向到引荐来源网址。未达到控制器操作的注释部分。我该如何管理?
请注意,print_pdf() 链接到一个按钮。因此,用户加载一个页面,按下链接到print_pdf 操作的“打印”按钮,单击此按钮时会打印一个 PDF 文件。我想重定向的原因是print_pdf 操作更新了一些数据,并且需要刷新按钮所在的页面以反映此更新。
控制器:
// This action is linked to a button
function print_pdf() {
...
$this->layout = 'pdf'; //this will use the pdf.ctp layout
$this->render();
// Line below are not executed
...
$this->redirect($this->referer());
}
【问题讨论】:
-
一旦你点击渲染,它就会加载页面。您可以在转到 PDF 之前进行这些更改吗?或者,您是否可以打开一个新选项卡/窗口,进行更改,然后关闭该选项卡?
-
如果我在渲染之前重定向页面,它不会打印 PDF。我也尝试过 Javascript,我将页面刷新分配给
print_pdf按钮,但这也不起作用,因为在执行print_pdf操作之前页面刚刚刷新。我必须在print_pdf视图中重定向吗? (这似乎不太合适) -
您可能必须通过使用 JavaScript 的 AJAX 调用来执行此操作;点击按钮;向服务器发送 Ajax 调用并更新数据库,当 Ajax 调用返回“成功”时,更新信息并打开 PDF