Передайте массив из флажков и вставьте несколько строк в базу данных CodeIgniter. - PullRequest
0 голосов
/ 23 сентября 2018

Вот мой взгляд:

<?php foreach ($list_peserta as $show): ?>
                <label>
                <input type="checkbox" name="undangan[]" value="<?php echo $show->email ?>" />
                <?php echo $show->nama ?></label>
              <?php endforeach; ?>
            </div>
          </div>
          <div class="form-actions">
            <input type="submit" value="Kirim" class="btn btn-info">
          </div>
          <?php echo form_close(); ?>

Мой контроллер:

$data   =   array();
        $count  =   count($this->input->get_post['undangan']);
        for ($i = 0; $i <= $count ; $i++) {
            $data[] =   array(  
                                'id_acara'      =>  $this->input->post['id'][$i],
                                'email_peserta' =>  $this->input->post['undangan'][$i],
                                'status'        =>  ['Diundang'][$i]
                            );

            $this->db->insert_batch('kehadiran', $data);

Я получаю эту ошибку: введите описание изображения здесь

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Таким образом, вы получаете ошибку, которая по существу говорит, что $this->input->get_post['undangan'] не является массивом.Сначала вы должны проверить, какое значение дает вам значение var_dump.

Возможно, вы заметите, что ваш синтаксис для получения сообщения неверен:

https://www.codeigniter.com/user_guide/libraries/input.html#CI_Input::get_post

$this->input->get_post(‘some_data’, TRUE);

После следования этой схеме у вас больше не должно быть проблем.Если вы все еще находитесь, вам нужно убедиться, что переменная отправляется.Я не знаю обстоятельств, когда я не знал, является ли переменная get или post, поэтому я бы просто сделал ее одной из них вместо использования get_post.

Такжекак правило, это хорошая идея для проверки ваших входных данных.

$var = $this->input->post('somevar');

if (is_null($var)) {
    show_error('missing params');
} else {
    // your logic
}
0 голосов
/ 23 сентября 2018

Я думаю, у вас есть опечатка в этой строке.Не используйте скобки, или это похоже на ссылку на массив.

$count  =   count($this->input->get_post['undangan']);

Я думаю, это должна быть скобка ...

$count  =   count($this->input->get_post('undangan'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...