如何在Codeigniter中获取复选框值

时间:2018-07-24 06:55:12

标签: php codeigniter checkbox

朋友您好,我对codeigniter中的复选框有疑问。我想通过单击带有其ID的复选框将多个消息发送给不同的朋友。

这是我的看法

                    <tr>
                        <td><input type="checkbox" name="friend_id[]" value=<?php echo $friend->id;?>></td>
                        <td><?php echo $friend->friend_name;?></td>
                    </tr>

这是我的控制者

public function message(){

$this->form_validation->set_rules('message','Message', 'required');
$this->form_validation->set_rules('friend_id','Recipients', 'required');
if($this->form_validation->run()){
     $data = $this->input->post('friend_id');
     echo '<pre>';
     print_r($data);
     echo '</pre>';
     }
     else{
     echo validation_errors();
        }
     }

当我运行它时..我收到错误消息,表明我检查姓名时需要收件人。

3 个答案:

答案 0 :(得分:1)

  

如果确实使用数组作为字段名称,则必须使用EXACT数组   在需要该字段名称的辅助函数中的名称,并作为   验证规则字段名称。

所以尝试:

$this->form_validation->set_rules('friend_id[]','Recipients', 'required');

否则:

 public function message(){

        $this->form_validation->set_rules('message','Message', 'required');
        $this->form_validation->set_rules('friend_id','Recipients', 'callback_arr_required');
        if($this->form_validation->run()){
             $data = $this->input->post('friend_id');
             echo '<pre>';
             print_r($data);
             echo '</pre>';
             }
             else{
             echo validation_errors();
                }
             }

    public function arr_required($arr) {

        if (is_array($arr) && count($arr) > 0) {
            return true;
        }
        $this->form_validation->set_message('arr_required', 'Please select atleast one friend.');
        return FALSE;

    }

答案 1 :(得分:0)

使用此代码进行测试

$this->form_validation->set_rules('friend_id[]', 'Recipients', 'required');

https://www.codeigniter.com/userguide3/libraries/form_validation.html#using-arrays-as-field-names

答案 2 :(得分:0)

在代码验证器验证中,更改以下行:

// hook into wp pre_get_posts
add_action('pre_get_posts', 'jc_woo_search_pre_get_posts');

function jc_woo_search_pre_get_posts($q){

    if ( is_search() ) {
        add_filter( 'posts_join', 'jc_search_post_join' );
        add_filter( 'posts_where', 'jc_search_post_excerpt' );
    }
}

$this->form_validation->set_rules('friend_id','Recipients', 'required');

问题将得到解决。