0
我對CI真的很陌生,今天一直在嘗試創建一個更新表單類,但我正陷入死衚衕。我有我的功能設置來創建表單並將數據發佈到數據庫,我現在需要能夠更新此。Codeigniter更新表單
我的編輯表單功能如下:
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選項時,我可以獲取要更新的數據,但會更新d中的每個項目atabase。我顯然需要這個只更新正在編輯的窗體的窗體ID的數據。現在,當我提交更新表單時,我被重定向到了我的$ base_url,這是正確的,但是沒有數據被更新,因此我在定義表單id時顯然做錯了什麼?
正如我所說我是新來的,所以如果有人注意到任何首選的方法隨時讓我知道:)。
任何指針讚賞。
在此先感謝。
本
感謝您的答覆。這就說得通了!!我已經添加了隱藏字段,但是當我提交表單時,字段沒有更新。只要我刪除$ form_id = $ this-> EE-> input-> get('form_id'); $ data ['form_id'] = $ form_id;從update_form函數中,立即爲所有表單提供數據更新。所以我必須在某處用EE-> db->更新出錯。 – Ben
您在查看POST時正在查看GET。 '$ form_id = $ this-> EE-> input-> post('form_id');'。 –
AHA! Gotcha,謝謝Derek! ShiftExchange你的意見也有很大的幫助,所以謝謝:) – Ben