在现有页面中包含CodeIgniter表单

时间:2011-03-08 21:55:52

标签: codeigniter

我想在现有的php页面中包含CodeIgniter注释表单。目前我将评论表格包含在

$_SERVER["REQUEST_URI"] = "comment/index2/".$page;
                require_once($directoryLevelPrefix . "staff/codeigniter/index.php");

然而,当codeigniter加载视图以显示表单的结果时,我丢失了包含表单的原始php页面上的内容。我已经尝试在将表单数据添加到数据库之后添加重定向,以重定向到我原来的php页面,例如。

redirect($_POST['return'])

但是我想传递一些变量,例如“谢谢你的评论”,这会导致标题已经发送错误。

替代方案可能是使用ajax,但我希望在提交评论时刷新整个页面。

2 个答案:

答案 0 :(得分:0)

这是因为CodeIgniter是一个旨在处理显示整个网页的框架。你不能只包括它,因为它试图发送新的标题和所有内容。

两种解决方案:

  • 您可以将codeigniter页面加载为主页面,只需将原始的PHP代码包含在视图文件中即可。这取决于原始php文件的设置方式。

  • 您可以使用cURL从您自己的服务器调用页面,将html输出作为字符串,然后将其回显到当前页面。但这不是很有效。

  • 正如C. Scott Asbach所说,你可以在iframe中加载整个页面。可能不是一个好主意,据我所知,iframe已被弃用,并且会造成凌乱的网站。

可能最好只是尝试避免使用CodeIgniter在现有页面中显示子表单: - )

答案 1 :(得分:0)

我有类似的需求,我只是在iframe中加载CodeIgniter表单。这是在WordPress页面上放置一个联系表单。我使用了iframe,因为我的需求仅限于这一种形式,我觉得它不需要尝试以任何方式集成CodeIgniter和WordPress。

此方法的一个Pro是表单可以提交并加载确认页面,错误页面,甚至是多页表单,所有导航都在iframe内部进行,因此您永远不会离开您的页面在使用表单时打开。另一个Pro是表格完全便携。

缺点当然是你可能不喜欢使用任何基于你的需求和喜好的iframes。