我正在使用Codeigniter 3.0.0版本
尝试使用subjecID[ ]
方法访问名为$this->input->post()
的多选下拉字段的值时,返回空值。但是当我访问$_POST['subjectID']
时,我可以从subjecID[ ]
字段中看到数组形式的值。即使在较旧版本的Codeigniter中,我也可以从帖子中获取数据作为数组。那么,可能是什么问题。请告诉我是否有任何配置需要更改?
以下是我的控制器功能。
protected function rules() {
$rules = array(
array(
'field' => 'name',
'label' => $this->lang->line("teacher_name"),
'rules' => 'trim|required|max_length[60]'
),
array(
'field' => 'subjectID',
'label' => $this->lang->line("select_subject"),
'rules' => 'required'
)
);
return $rules;
}
public function add() {
$this->data['subjects'] = $this->subject_create_m->get_subject();
if($_POST) {
$rules = $this->rules();
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() == FALSE) {
$this->data['form_validation'] = validation_errors();
$this->data["subview"] = "teacher/add";
$this->load->view('_layout_main', $this->data);
} else {
$array = array();
$array['name'] = $this->input->post("name");
$array['specialization'] = serialize($this->input->post('subjectID[]'));
print_r($array);
}
} else {
$this->data["subview"] = "teacher/add";
$this->load->view('_layout_main', $this->data);
}
}
以下是我通过使用以下代码打印帖子获得的输出
print_r($this->input->post(NULL, FALSE));
Array ( [name] => sfgfdsgfsd [subjectID] => )
每次验证失败时都会出现此问题。
答案 0 :(得分:1)
在验证规则中尝试此'field' => 'subjectID[]'
而不是'field' => 'subjectID'
答案 1 :(得分:0)
尝试这个
$this->input->post('subjects[]');
检查配置中的助手
$autoload['helper'] = array('form');
答案 2 :(得分:0)
我刚刚使用多个输入类型数组工作 使用$ this-> input-> post(' subject');
答案 3 :(得分:0)
您可以使用
获取所选值的数组$this->input->post('subjects');
或者您使用php post变量来获取数据
if(isset($_POST[subjects])){
foreach($_POST[subjects]) as $subject){
}
}
Best会在此处发布您的表单html代码,以便发布正确的答案
答案 4 :(得分:0)
使用var_dump($ this-> input-> post()) 要么 您是否从url
中删除了index.php