我有一个列表中每一行的编辑按钮(view1)。单击该编辑按钮后,将打开一个站点,我可以在其中编辑行字段(view2)。它正确地将行的id传递给view2(在下面的例子中为id 11),我在模型中调用uri段以使用来自控制器的数组数据更新该行11,该数据数据也传递给模型。但它仍然没有更新。谢谢你的帮助。
(查看1):
//clicking edit button - redirects and passes row id 11 to view 2
<a href='<?= site_url("admin/admins/update_site/$admin->id") ?>'><img src='<?= base_url('media/admin/images/icons/config.png'); ?>'/></a>
(观点2):
// view 2 opens where I can edit the row fields
//url is now: www.site.com/admin/admins/update_site/11:
<form action="<?= site_url('admin/admins/update'); ?>" method="POST">
Username: <br>
<input type='text' name='username'/><br>
Password: <br>
<input type='password' name='password' /><br>
<input type='submit' name='submit' value='Save' />
</form>
控制器:
//making an array with updated data and send it to the model
public function update(){
$update = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
);
$this->load->model('admin/admins_model');
$this->admins_model->update_admin($update);
redirect(site_url('admin/admins/read'));
}
型号:
//update row 11 (from uri segment) the with the array data from controller
public function update_admin($update){
$this->db->where('id', $this->uri->segment(4));
$this->db->update('admins', $update);
}
答案 0 :(得分:1)
我建议你在你的id形式中添加隐藏字段,这里的问题是ur form action没有第4段。
视图2:
<form action="<?= site_url('admin/admins/update'); ?>" method="POST">
Username: <br>
<input type='text' name='username'/><br>
Password: <br>
<input type='password' name='password' /><br>
<input type='hidden' name='id' value="<?php $this->uri->segment(4) ?>"/>
<input type='submit' name='submit' value='Save' />
</form>
模型:
//update row 11 (from uri segment) the with the array data from controller
public function update_admin($update){
$this->db->where('id', $this->input->post('id'));
$this->db->update('admins', $update);
}
答案 1 :(得分:1)
修改您的路线,以便他们接受以下网址:admin/admins/update/1
然后您只需将参数添加到控制器function update($id)
,以便$id
存储1.我建议您使用您的路线/(:num)
以防止非数字字符。