私はCodeigniterフレームワークを使用してスキルを開発しています。私はすでにデータを表示してデータベースに挿入しましたが、データを更新するのはもっと難しいと感じています。私が見たほとんどのチュートリアルは、データベースから選択したIDを取得してフォームフィールドにエコーするのではなく、コードに値を入力しています。これまでのところ私は持っています:
news_model:
function editArticle($data) {
$data = array(
'title' => $title,
'content' => $content,
'author' => $author
);
$this->db->where('id', $id);
$this->db->update('news', $data, array('id' =>$id));
}
コントローラ:
public function update_entry() {
//load the upate model
$this->load->model('update_model');
//get the article from the database
$data['news'] = $this->news_model->get_article($this->uri->segment(4));
// perform validation on the updated article so no errors or blank fields
$this->load->library('form_validation');
$this->form_validation->set_rules('title', 'Title', 'trim|required');
$this->form_validation->set_rules('content', 'Content', 'trim|required');
$this->form_validation->set_rules('author', 'Author', 'trim|required');
// If validation fails, return to the edit screen with error messages
if($this->form_validation->run() == FALSE) {
$this->index();
}else{
//update the news article in the database
if($query = $this->update_model->update()) {
}else{
redirect('admin/edit');
}
}
}
意見:
<?php echo form_open('admin/edit/edit_article'); ?>
<?php echo form_input('title', set_value('title', 'Title')); ?><br />
<?php echo form_textarea('content', set_value('content', 'Content')); ?><br />
<?php echo form_input('author', set_value('author', 'Author')); ?>
<?php echo form_submit('submit', 'Edit Article'); ?>
<?php if (isset($error)){echo "<p class='error'>$error</div>";
}?>
<?php echo validation_errors('<p class="error">' );?>
<?php echo form_close(); ?>
1)データをエコーアウトして(ユーザーが表示されている記事ビューから編集ボタンをクリックしたときから)そのIDを取得し、編集ページのテキストフィールドに表示する方法がわかりません。
2)次に、ユーザーが更新されたデータを送信してデータベースに投稿するために?
私のコントローラー/ビューファイルの残りの部分を構造化するためのガイダンスやヘルプは、1日以上これに取り組んでいるのでありがたいです!
ありがとうございました。