codeigniter搜索表单错误

时间:2014-07-13 19:24:24

标签: php forms codeigniter

我一直试图弄清楚我的表单搜索表单有什么问题。我试图在代码点火器中构建一个基本的搜索表单。我之前已经构建了一个搜索表单,我正在为不同的应用程序构建它,并且我不断获得

遇到错误

不允许您请求的操作。

这不是故障排除的描述。我正在使用与上一个项目中相同的配置。所以我不明白为什么我收到上述错误消息。

当我转到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>

希望这有助于某人。

0 个答案:

没有答案