我一直试图弄清楚我的表单搜索表单有什么问题。我试图在代码点火器中构建一个基本的搜索表单。我之前已经构建了一个搜索表单,我正在为不同的应用程序构建它,并且我不断获得
遇到错误
不允许您请求的操作。
这不是故障排除的描述。我正在使用与上一个项目中相同的配置。所以我不明白为什么我收到上述错误消息。
当我转到http://www.gaddisweb.com/index.php/childtest/search时,搜索表单会显示查看代码。现在,我有规则设置该字段是必需的。我点击搜索按钮,字段为空,它应该给我和错误消息说明所需的字段。
相反,我得到上面的错误消息。即使我在块中放入任何内容,我也会得到相同的错误消息。我知道我错过了一些简单但我无法看到的东西。
控制器代码:
class ChildTest extends CI_Controller {
public function index(){
$this->search();
}
public function search(){
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules(array(
array(
'field' => 'keyword',
'label' => 'Child Family Name',
'rules' => 'required',
)
));
$this->form_validation->set_error_delimiters('<div class="alert alert-error">', '</div>');
if(!$this->form_validation->run()){
$this->load->view('childsearch');
}else{
$keyword = $this->input->post('keyword');
echo $keyword;
}
}
}
查看代码:
<div id="search">
<p></p>
<form id="search" method = "post" action="">
<label id="familyname">Child Family Name</label>
<input type="text" size="20" id="keyword" name="keyword"/>
<input type="submit" value="Search" />
</form>
</div>
如果该块为空,我应该收到一条错误消息,如果该块中有任何内容,则应该在发布操作时向我显示。
两者都没有发生。
感谢您的帮助。
答案 这是我对发生的事情的看法。我无法找到任何说明这一点的文档。我能够实现我想做的事情。我不得不做一个轻微的重写,因为第一次使用搜索表单和第二次使用安全会话时的区别是。
在我看来,当您打开会话时,CI不允许发布到同一页面。后期数据必须传递给另一个控制器,不能发布到始发控制器。
这部分是从上面的原始控制器中取出并放在另一个名为childvalidation的部分。
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules(array(
array(
'field' => 'keyword',
'label' => 'Child Family Name',
'rules' => 'required',
)
));
$this->form_validation->set_error_delimiters('<div class="alert alert-error">', '</div>');
if(!$this->form_validation->run()){
}
一旦我添加了childvalidation控制器并将表单数据传递给它,我就能够完成搜索功能。
查看代码已更改为:
<?php echo validation_errors() . "</br>";?>
<?php echo form_open('childsearchvalidation'); ?>
<label id="familyname">Child Family Name</label>
<input type="text" size="20" id="keyword" name="keyword"/>
<input type="submit" value="Search" />
</form>
希望这有助于某人。