我真的是 CI 新手,今天一直在尝试创建一个更新表单类,但我遇到了死胡同。我已经设置了创建表单并将数据发布到数据库的功能,我现在需要能够更新它。
我的编辑表单功能如下:
public function edit_event()
{
$vars = array();
$data['form_url'] = $this->form_url;
if ($form_id = $this->EE->input->get('form_id'))
{
$data['form_id'] = $form_id;
}
return $this->EE->load->view('edit_event', $data, TRUE);
}
并且函数中加载的edit_event文件是:
<?php
$this->EE=& get_instance();
$this->load->helper('form');
$attributes = array('class' => 'event_form', 'id' => 'my_event_form');
echo form_open($form_url.AMP.'method=update_form', $attributes);
$this->EE->load->library('table');
$this->EE->table->set_heading(
'Preference',
'Setting'
);
$query = $this->EE->db->query("SELECT * FROM exp_events WHERE id = '$form_id'");
foreach($query->result_array() as $row)
{
$this->EE->table->add_row(
form_label('Application Key', 'app_key'),
form_input('app_key',$row['app_key'])
);
$this->EE->table->add_row(
form_label('Access Token', 'access_token'),
form_input('access_token',$row['access_token'])
);
$this->EE->table->add_row(
form_label('User Key', 'user_key'),
form_input('user_key',$row['user_key'])
);
}
echo $this->EE->table->generate();
echo form_reset('reset', 'Clear Form');
echo form_submit('mysubmit', 'Submit Post!');
echo form_close();
?>
然后我有我的更新表单功能:
public function update_form()
{
$form_id = $this->EE->input->get('form_id');
$data['form_id'] = $form_id;
$form_data = array(
'app_key' => $this->EE->input->post('app_key'),
'access_token' => $this->EE->input->post('access_token'),
'user_key' => $this->EE->input->post('user_key')
);
$this->EE->db->where('id', $form_id);
$this->EE->db->update('exp_events', $form_data);
$this->EE->functions->redirect($this->base_url);
}
删除 $form_if 选项时,我可以获得要更新的数据,但它会针对数据库中的每个项目进行更新。我显然需要这个来仅使用正在编辑的表单的表单 ID 更新数据。
就目前而言,当我提交更新表单时,我被重定向到我的 $base_url 这是正确的,但没有数据得到更新,因此我在定义表单 ID 时显然做错了什么?
正如我所说,我是新手,所以如果有人注意到任何首选方法,请随时告诉我:)。
任何指针表示赞赏。
提前致谢。
本