我正在使用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)然后让用户提交更新后的数据并在数据库中发帖?
任何有关构建其余控制器/视图文件的指导或帮助都会受到赞赏,因为我已经使用了超过一天!
谢谢。
答案 0 :(得分:0)
你还没有为你的观点提供所有代码,所以我不确定你有多少权利以及你有多少错误,但我会提到一些我能看到的东西 -
您似乎没有从您的控制器调用您的视图,例如$this->load->view('edit', $data);
(请参阅http://codeigniter.com/user_guide/general/views.html)当前字段的内容位于$data
。
要预先填充表单字段,请将当前字段值放在set_value()
的第二个参数中,例如set_value('title', $article->title)
。
您的模型还需要处理提交的表单(在$this->input->post
中),然后在模型中调用更新查询。
(我不得不说CodeIgniter文档在这方面不是很好 - 您必须查看Form Helper和Form Validation Class文档,以及跟踪视图(上面的链接),{ {3}}和Controllers(加上一两个其他人,我不应该怀疑))。