调用smarty display()后是否可以调用另一个函数?

时间:2014-05-24 08:26:48

标签: php smarty smarty3

我正在努力让用户下载一个zip文件,但在此之前,他们必须填写一份包含一些必要详细信息的表单。

基本上,我能够做到,但问题是,当用户提交表单时,页面保持不变并且文件已下载。

我做的是,我创建了一个文件,其中包含调用另一个文件/页面作为成功页面的表单,当它进入成功页面时,该文件被下载的时间是提到,页面仍然是表单页面,文件会自动下载。

在我的代码中,我先调用下载文件的函数,然后调用将显示的智能模板的函数。

但问题是,似乎第二个功能并没有全部执行。起初我认为它的header()停止了它旁边的代码执行,但正如我已经读过的那样,header()函数之后的代码仍然执行,除非调用 exit

我还尝试调用将渲染smarty页面的函数,然后调用下载文件的函数,但它不起作用。似乎 display()调用之后的代码根本没有执行?

我有办法实现我想做的事吗?

1 个答案:

答案 0 :(得分:0)

如果由于任何原因您的显示功能有问题,您应该简单地使用获取功能而不是显示。这样,您就可以使用生成的内容并执行任何您想要的操作

   $siteContent = $smarty->fetch('yourtemplate.tpl');
   // do anything you want
   echo $siteContent;