【问题标题】:How to update data from a table given the ID using codeigniter?如何使用codeigniter从给定ID的表中更新数据?
【发布时间】:2019-09-15 09:11:33
【问题描述】:

我正在尝试使用 codeigniter 在我的表单中创建更新功能。这就是我目前所拥有的

控制器

public function editMenu()
  {
    $data['title'] = 'Menu Management';
    $data['user'] = $this->db->get_where('user', ['email' =>
    $this->session->userdata('email')])->row_array();

    $data['menu'] = $this->db->get('user_menu')->result_array();

    $this->form_validation->set_rules('menu', 'Menu', 'required');

    if($this->form_validation->run() == false){
      //Must be in order
      $this->load->view('templates/header', $data);
      $this->load->view('templates/sidebar', $data);
      $this->load->view('templates/topbar', $data);
      $this->load->view('menu/index', $data);
      $this->load->view('templates/footer');
    }

    else
    {
      $menu = $this->input->post('menu');
      $id = $this->input->post('id');

      $this->db->set('menu', $menu);
      $this->db->where('user_menu'. '.' .'id', $id);
      $this->db->update('user_menu');

      $this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">updated</div>');
      redirect('menu');
    }
  }

查看

<div class="modal fade" id="editMenuModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="editMenuModal">Edit Menu</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <form action="<?= base_url('menu/editMenu'); ?>" method="post">
        <div class="modal-body">
          <p style="color:green">Enter new name</p>
          <input type="text" class="form-control mt-3" id="id" name="menu" value="<?= $m['id'] ?>" readonly>
          <div class="form-group">
            <input type="text" class="form-control" id="email" name="menu" value="<?= $m['menu'] ?>">
          </div>
        </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-primary">Edit</button>
      </div>
     </form>
    </div>
  </div>
</div>

即使在我完成插入新名称后显示 更新 消息,编辑似乎也不起作用。数据名称保持不变。当我尝试回显查询时,它给了我UPDATE `user_menu` SET `menu` = 'd' WHERE `user_menu`.`id` IS NULL

我想从视图代码中的表单中获取 ID 并将其传递给控制器​​,然后在控制器中使用它来执行查询

【问题讨论】:

    标签: php codeigniter bootstrap-4 codeigniter-3


    【解决方案1】:

    做两件事

    更改具有id="id"的输入的名称属性

    <input type="text" class="form-control mt-3" id="id" name="id" value="<?= $m['id'] ?>" readonly>
    

    更改更新代码

    这里不需要使用表名。但是如果你想使用这样做$this-&gt;db-&gt;where('user_menu.id', $id);

    $menu = $this->input->post('menu');
    $id = $this->input->post('id');
    
    $this->db->set('menu', $menu);
    $this->db->where('id', $id);
    $this->db->update('user_menu');
    

    【讨论】:

      【解决方案2】:

      id 输入的名称错误,请将 name="menu" 更改为 name="id"

              <input type="text" class="form-control mt-3" id="id" name="id" value="<?= $m['id'] ?>" readonly>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多