Php Codeigniter-根据选中的复选框更新数据库记录

Php Codeigniter-根据选中的复选框更新数据库记录,php,database,codeigniter,loops,codeigniter-3,Php,Database,Codeigniter,Loops,Codeigniter 3,我有一个包含用户订单行的表,我希望用户能够在一次单击中更新多个订单行,因此我使用了一个复选框,以便用户可以检查要更新的订单 每个复选框表示必须更新的订单id。如果选中,我尝试使用循环,但代码会导致错误,或者什么也不做 以下是我的型号代码: public function update_order(){ $data = array( 'status' => 'Pack' ); $this->db->where('order_id', $this

我有一个包含用户订单行的表,我希望用户能够在一次单击中更新多个订单行,因此我使用了一个复选框,以便用户可以检查要更新的订单

每个复选框表示必须更新的订单id。如果选中,我尝试使用循环,但代码会导致错误,或者什么也不做

以下是我的型号代码:

public function update_order(){
    $data = array(
      'status' => 'Pack'
    );
    $this->db->where('order_id', $this->input->post('checkbox'));
    return $this->db->update('user_orders', $data);
  }
控制器代码(我放置了没有任何循环的代码,只是为了让它更清晰):

最后一个观点是:

<?php echo form_open('user/update_order'); ?>
    <?php foreach ($users as $user): ?>
    <input type="checkbox" class="custom-control-input" name="checkbox" value="<?php echo $user['order_id']; ?>">
      <?php endforeach; ?>
      <button type="submit" class="btn btn-sm btn-block btn-warning text-white">Update</button>
 </form>


希望这对您有所帮助:

将复选框设置为如下数组:
checkbox[]

你的观点应该是这样的:

<?php echo form_open('user/update_order'); ?>
    <?php foreach ($users as $user): ?>
    <input type="checkbox" class="custom-control-input" name="checkbox[]" value="<?php echo $user['order_id']; ?>">
      <?php endforeach; ?>
      <button type="submit" class="btn btn-sm btn-block btn-warning text-white">Update</button>
 <?php echo form_close(); ?>

查看更多信息:

希望这对您有所帮助:

将复选框设置为如下数组:
checkbox[]

你的观点应该是这样的:

<?php echo form_open('user/update_order'); ?>
    <?php foreach ($users as $user): ?>
    <input type="checkbox" class="custom-control-input" name="checkbox[]" value="<?php echo $user['order_id']; ?>">
      <?php endforeach; ?>
      <button type="submit" class="btn btn-sm btn-block btn-warning text-white">Update</button>
 <?php echo form_close(); ?>

查看更多信息:

工作得很好,我想我需要在控制器中运行某种循环才能工作。谢谢你做得这么好,我想我需要在控制器中运行某种循环才能工作。多谢各位
public function update_order()
{
    $data = array(
      'status' => 'Pack'
    );
    $order_ids = $this->input->post('checkbox');
    $this->db->where_in('order_id', $order_ids);
    return $this->db->update('user_orders', $data);
}