Codeigniter - обновлять записи базы данных на основе установленного флажка - PullRequest
0 голосов
/ 23 июня 2018

У меня есть таблица, содержащая строки пользовательских заказов, я хотел бы, чтобы пользователь мог обновлять строки нескольких заказов одним щелчком мыши, поэтому я использую флажок, чтобы пользователь мог проверить заказ, который хотел бы обновить.

каждый флажок представляет идентификатор заказа, который должен быть обновлен, если установлен флажок, я пытался использовать циклы, но код еще вызывает ошибку или ничего не делает.

вот мой код модели:

public function update_order(){
    $data = array(
      'status' => 'Pack'
    );
    $this->db->where('order_id', $this->input->post('checkbox'));
    return $this->db->update('user_orders', $data);
  }

Код контроллера (я поместил код без каких-либо циклов, чтобы сделать его более понятным):

public function update_order()
{
   $this->user_model->update_order();
}

и, наконец, вот мнение:

<?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>

1 Ответ

0 голосов
/ 23 июня 2018

Надеюсь, это поможет вам:

Сделайте ваш флажок массивом так: 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(); ?>

Ваш метод update_order должен выглядеть следующим образом:

Используйте where_in для обновления записей

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

Подробнее: https://www.codeigniter.com/user_guide/database/query_builder.html#looking-for-specific-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...