【发布时间】:2018-02-14 09:21:15
【问题描述】:
我正在使用 Codeigniter 3.0.0 版本
当尝试使用$this->input->post() 方法访问名为subjecID[ ] 的多选下拉字段的值时,它返回空值。但是当我访问$_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] => )
因为每次验证失败都会出现这个问题。
【问题讨论】:
-
试试这个
$this->input->post('subjects') -
你能告诉我你的控制器吗?
-
在这个范围内直到 3.1.7 都没有变化,你仍然可以使用
$this->input->post('subjects') -
在验证规则中试试这个 'field' => 'subjectID[]' 而不是 'field' => 'subjectID'
-
非常感谢阿卜杜勒。它正在工作。
标签: php codeigniter codeigniter-3