php - Codeigniter 通过在 uri 中传递 id 来更新数据库行

标签 php mysql codeigniter crud

对于列表 (view1) 中的每一行,我都有一个编辑按钮。单击该编辑按钮时,将打开一个站点,我可以在其中编辑行字段 (view2)。它将行的 id 正确传递给 view2(在下面的示例中为 id 11)我在模型中调用哪个 uri 段以使用来自 Controller 的数组数据更新此行 11,我也传递给模型的数组数据。但它仍然没有更新。感谢您的帮助。

( View 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>

( View 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>

Controller :

//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);
}

最佳答案

我建议你在你的表单中为 id 添加隐藏字段,这里的问题是你的表单操作没有第 4 段。

View 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);
}

关于php - Codeigniter 通过在 uri 中传递 id 来更新数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976625/

相关文章:

php - PHP 函数 : brightness(); making RGB colors darker/brighter 需要帮助

php - 将多个变量传递给 View ?

php - 使用 Point 类型的 PHPUnit/CakePHP Fixtures

sql - 如何优化 sql doublon 检查器

php - Datepicker无法保存到MySQL

php - 为什么在响应成功时不通过 Paypal MassApi 转账

php - 使用 PHP 创建大写的 MySQL 表名

java - 如何为 Ibatis SqlTemplateClientMap 创建自己的回调

php - 为规范关闭全局 XSS 过滤。 Controller ?

php - strtolower 在 codeigniter 3 框架中不起作用