CodeIgniter验证和复选框

时间:2014-02-13 18:57:26

标签: codeigniter validation checkbox

我的复选框有问题我想添加验证,但我不知道如何在验证规则中查看我的名字字段。

我的观点

<?php   
   foreach( $tab1 as $row){
?>   
    <a>
      <input type="checkbox" name="<?php echo 'id_user_'.$row->id_user; ?>" value="   <?php echo $row->id_user; ?>"  />

    </a>
       <?php

当我这样做时,我得到结果(复选框的名称),例如:

id_user_1
id_user_2

id_user_3

现在我想添加验证但是:

 $this->form_validation->set_rules(' WHAT SHOULD I WRITE HERE ??? ', 'User','required'); 

编辑:

  $this->form_validation->set_rules('id_uzytkownika', 'Uzytkownika','required');



if ($this->form_validation->run())
{
    $todo = array(
            'tytul_projektu'=>$this->input->post('tytul_projektu'),
            'opis_projektu'=>$this->input->post('opis_projektu'),
            'data_zakonczenia'=>$this->input->post('datepicker')
            );

    $user_projekty = array(
            'id_uzytkownika'=>$this->input->post('id_uzytkownika'),
            'id_projektu'=>$this->input->post('id'),
            );



    $users = array();
            foreach($_POST as $key => $value)
            {
                if(strpos($key, 'id_uzytkownika') === 0)
                {
                    $users[] = $value;
                }  
            }

$this->Todo_model->add($todo,$user_projekty,$users);

查看:

<?php   
   foreach( $tab1 as $row){
    ?>   
    <a>
      <input type="checkbox" name="<?php echo 'id_uzytkownika['.$row->id_uzytkownika.']'; ?>" value="<?php echo $row->id_uzytkownika; ?>"  />

MODEL:

function add($data,$data2,$users)
{
    $this->db->insert('projekty', $data);     
     

$ id = $ this-&gt; db-&gt; insert_id('projekty');
  $ data2 ['id_projektu'] = $ id;

     

$ query = $ this-&gt; db-&gt; query(“SELECT * FROM uzytkownicy”);

     

foreach($ users as $ user){

  $data2['id_uzytkownika'] = $user;

  $this->db->insert('projekty_uzytkownicy', $data2);  }

  return $query->result();

}

1 个答案:

答案 0 :(得分:0)

您可以采取一些方法。使用现有代码,第一个是创建一个定义所有唯一输入名称的循环。

foreach($users as $user) {
     $this->form_validation->set_rules('id_user_'.$user->id_user, 'User','required');
}

但是,这个逻辑需要检查每个复选框。我不确定在什么情况下这将被用于。

另一种方法是稍微改变你的html。 而不是

 <input type="checkbox" name="<?php echo 'id_user_'.$row->id_user; ?>" 
       value="<?php echo $row->id_user; ?>"  />

您可以尝试使用类似

的内容
 <input type="checkbox" name="<?php echo 'id_user['.$row->id_user.']'; ?>" 
       value="1"  />

这样您就可以根据id_user制作表单验证规则,而不是使用唯一名称。