codeigniter验证

时间:2010-12-21 00:17:53

标签: codeigniter validation

您好我有一个论坛,当用户创建评论时,我希望如果他没有输入任何内容我想告诉他一个错误,他必须输入内容:)但我不知道怎么把他放到他所在的主题。

我有这个

if($this->_submit_validate_comment() == false) {
   $this->post(); return;
}

function _submit_validate_comment() {
  $this->form_validation->set_rules('kommentar', 'kommentar', 'required|min_length[4]');
  return $this->form_validation->run();
}

3 个答案:

答案 0 :(得分:3)

您可以使用jquery执行此操作,但如果这不是一个选项,您可以从网址获取论坛或主题ID(假设您使用这种方式的网址)。

例如:

http://yoursite.com/forum/topic/12

if($this->_submit_validate_comment() == false) 
{ 
    $topic_id = $this->uri->segment(3);
    redirect('/forum/topic/'. $topic_id);
}

if($this->_submit_validate_comment() == false) 
{ 
    $topic_id = $this->uri->segment(3);
    $this->topic($topic_id);
}

希望这有帮助。

答案 1 :(得分:0)

感谢您帮助我明白您的意思,但它不起作用:b,

我有这个

$ topic_id = $ this-> uri-> segment(3); $这 - >交($ topic_id); 返回;

我的网址是

本地主机:8888 / CI / index.php的/论坛/ create_comment

看起来它无法找到ID

我的论坛网址是 本地主机:8888 / CI / index.php的/论坛/后/ 33

这是我的功能

  

function create_comment(){     如果($这 - > _submit_validate_comment()   == false){$ id = $ this-> uri-> segment(3);      $这 - >交($ ID);返回;      // echo“验证fejl,kontakt lige   en admin!“;} else {$ data =   数组('fk_forum_traad'=>   $这 - >输入 - >柱( 'ID'),      'brugernavn'=>   $这 - >会话而>用户数据( '用户名'),      'indhold'=>   $这 - >输入 - >柱( 'kommentar'),      'dato'=> 'fejl');

     

$这 - >负载>模型( 'forum_model');     $这 - > forum_model-> create_comment($数据);     重定向( '/论坛/后/'。   $这 - >输入 - >柱( 'ID') '',   '刷新'); }       }

     

function post($ id){     $这 - >负载>模型( 'forum_model');     $ data ['query'] =   $这 - > forum_model->帖($这 - > URI->链段(3));

     

$这 - >负载>模型( 'forum_model');     $ data ['comments'] =   $这 - > forum_model->注释(这 - $> URI->链段(3));

 $data['content'] = 'forum_post_view';
     

$这 - >负载>查看( '包括/模板',   $的数据); }

答案 2 :(得分:0)

为什么不使用隐藏的输入字段传递表单提交中的返回uri?除了在执行重定向之前验证返回uri之外,控制器不需要额外的工作。

将验证错误字符串放在会话类的flashdata中,以便在表单中回显,以及用于预填充表单的任何其他数据)