Как вставить несколько данных, используя массив - PullRequest
0 голосов
/ 01 мая 2019

Я новичок в использовании php CodeIgniter. Я могу вставить массив с помощью PHP родной. но как я могу вставить массив с помощью CodeIgniter, пожалуйста? помоги мне

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

это мой код заказа функции от контроллера:

public function order()
    {
        $this->form_validation->set_rules('id_sub', 'Id_sub', 'required|trim');
        if ($this->form_validation->run() == false) {
            $data['title'] = 'Order';
            $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
            $data["home"] = $this->product_model->getAll_join();
            $this->load->view('templates/header', $data);
            $this->load->view('templates/sidebar', $data);
            $this->load->view('templates/topbar', $data);
            $this->load->view('user/order', $data);
            $this->load->view('templates/footer');
        } else {
            $data = [
                'id_sub' => htmlspecialchars($this->input->post('id_sub', true))
            ];
            $this->db->insert('tbl_order_detail', $data);
            $this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">Data berhasil disimpan.
             </div>');
            redirect('user/order');
        }
    }

это мой код заказа:

 <tbody>
                                <tr>
                                    <td>
                                        <?php
                                        $query = $this->db->query("select tbl_referensi.referensi, tbl_sub_kategori.sub, tbl_sub_kategori.id_sub
                                            from tbl_referensi
                                            inner join tbl_sub_kategori
                                            on tbl_referensi.id_ref = tbl_sub_kategori.id_ref
                                            where tbl_referensi.id_ref = $tampil->id_ref;
                                            ");
                                        foreach ($query->result() as $tampil_sub) :
                                            ?>
                                            <input type="checkbox" aria-label="Checkbox for following text input" name="id_sub" id="id_sub" value="<?= $tampil_sub->id_sub ?>"> <label for="name" class="mr-4"><?= $tampil_sub->sub ?></label>
                                        <?php endforeach; ?>
                                    </td>
                                </tr>
                            </tbody>

Я думаю, что проблема связана с порядком функций, а тег HTML (name = "id_sub") - с порядком просмотра. возможно используя id_sub []. но как? пожалуйста, исправьте это и помогите мне.

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Здесь, в html, имя входа должно быть массивом

<input type="checkbox" aria-label="Checkbox for following text input" name="id_sub[]" id="id_sub" value="<?= $tampil_sub->id_sub ?>"> <label for="name" class="mr-4"><?= $tampil_sub->sub ?>

Mysql Query:

$data = [
          'id_sub' => implode(',',$this->input->post('id_sub'))
        ];
 $this->db->insert('tbl_order_detail',$data);
0 голосов
/ 01 мая 2019

Используйте это

<input type="checkbox" aria-label="Checkbox for following text input" name="id_sub[]" id="id_sub" value="<?= $tampil_sub->id_sub ?>"> <label for="name" class="mr-4"><?= $tampil_sub->sub ?></label>

и вы получите значение в контроллере, используя

$post_data = $this->input->post('id_sub');
foreach ($post_data as $key=>$value) {
  // do your code
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...