Forms 如何在多个页面上重用codeigniter表单
我有一个简单的搜索表单,我想在我的codeigniter应用程序中跨多个页面重用它。例如,现在我在侧边栏中有一个搜索表单,我计划在索引、关于和其他页面上显示侧边栏 我希望表单验证在用户提交表单的同一页面上显示错误 例如:Forms 如何在多个页面上重用codeigniter表单,forms,codeigniter,validation,Forms,Codeigniter,Validation,我有一个简单的搜索表单,我想在我的codeigniter应用程序中跨多个页面重用它。例如,现在我在侧边栏中有一个搜索表单,我计划在索引、关于和其他页面上显示侧边栏 我希望表单验证在用户提交表单的同一页面上显示错误 例如: 用户位于关于页面上 用户提交的表单包含无效数据 用户在“关于”页面的侧栏中看到错误 及 用户位于索引页上 用户提交的表单包含无效数据 用户在索引页的侧栏中看到错误 但是我想重用表单验证逻辑。我只想让它在用户发布的任何页面上显示错误 有什么办法吗?很抱歉,我不熟悉CI。关于您对上
有什么办法吗?很抱歉,我不熟悉CI。关于您对上述问题的评论,您可以使用 假设您已经加载了会话库,下面是一个helper函数
function last_page($page = null){
$ci = get_instance();
if($page === null)
return $ci->session->flashdata('last_page');
$ci->session->set_flashdata('last_page', $page);
}
然后你可以调用
last_页面('about')“关于”页面顶部的“代码>”,然后当您想知道您上一页的内容时,可以调用last_page()代码>没有参数。在这里,您必须全局思考
步骤1:创建一个视图文件:display.php
其中包括:
<div id = "main">
<div id = "header">
[load header file here]
</div>
<?php
if(validation_errors() != '') {
?>
<div id = "error">
<?=validation_errors()?>
</div>
<?php
}
?>
<div id = "content">
<?=$page?>
</div>
<div id = "footer">
[load footer file here]
</div>
</div>
在中,有不同的方法来配置规则集/规则组。然后,您可以简单地进行如下操作:
if ($this->form_validation->run('signup') == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
它将运行您的“注册”验证组。对我来说,这是实现可重用验证规则的最干净的方法。这是一个完全正确的问题。
我不是PHP专家,也不是CI专家,但事实上,有时您想要发布到一个没有创建您发布的视图的控制器。这意味着回发到自身是行不通的
我在Ellisab论坛上看到了这篇帖子:
在这一页上,有两种方法。两者都使用flashdata,而且都是完全有效的,IMHO
第一:创建一个helper函数
第二:扩展CI_表单_验证类。
第二个是我的方式,因为它看起来是最干净的,尽管有些人可能会争论表单验证类是否应该知道关于flash数据的任何信息
if ($this->form_validation->run('signup') == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}