朋友您好,我对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();
}
}
当我运行它时..我收到错误消息,表明我检查姓名时需要收件人。
答案 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');
问题将得到解决。