Php Codeigniter-输入post方法正在从多选择字段中删除或清空post数据
我使用的是Codeigniter 3.0.0版本 当尝试使用Php Codeigniter-输入post方法正在从多选择字段中删除或清空post数据,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我使用的是Codeigniter 3.0.0版本 当尝试使用$this->input->post()方法访问名为subsecid[]的多选下拉字段的值时,它返回空值。但是当我访问$\u POST['subjectID']时,我可以从subjectID[]字段中看到数组形式的值。即使在旧版本的Codeigniter中,我也能够从post中以数组的形式获取数据。那么,问题可能是什么呢。请告诉我是否有任何配置需要更改 下面是我的控制器功能 protected function rules() {
$this->input->post()
方法访问名为subsecid[]
的多选下拉字段的值时,它返回空值。但是当我访问$\u POST['subjectID']
时,我可以从subjectID[]
字段中看到数组形式的值。即使在旧版本的Codeigniter中,我也能够从post中以数组的形式获取数据。那么,问题可能是什么呢。请告诉我是否有任何配置需要更改
下面是我的控制器功能
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));
数组([name]=>sfgfdsgfsd[subjectID]=>)
因为每次验证失败时都会出现此问题。请尝试此项
$this->input->post('subjects[]');
检查配置中的帮助程序
$autoload['helper'] = array('form');
我最近刚刚使用了多输入类型数组来工作
使用$this->input->post('subjects') 您可以使用
$this->input->post('subjects');
或者使用php post变量获取数据
if(isset($_POST[subjects])){
foreach($_POST[subjects]) as $subject){
}
}
最好是在这里发布表单html代码,这样就可以发布正确的答案尝试使用此
'field'=>'subjectID[]'
而不是验证规则中的'field'=>'subjectID'
使用var\u dump($this->input->post())
或
你从url中删除index.php了吗?试试这个
$this->input->post('subjects')
你能给我看看你的控制器吗?在这个范围内直到3.1.7才有变化,你仍然可以用$this->input->post('subjects')
试试这个'field'=>'subjectID[],而不是验证规则中的'field'=>'subjectID'。谢谢。它正在工作。是的,当应用程序在2.X上运行时,我很长时间都是这样访问的,但当我升级到framework 3.0.0版本时,我遇到了这个问题。请确认查看页面中的下拉名称“主题[]”