2013-08-07 1 views
1

Я заселены флажки из базы данных следующим образом ...#CodeIgniter Отправляя все флажки «отмеченных» флажков из нескольких флажков в базу данных?

Вид:

<div class="control-group warning"> 
<label for="room_number" class="control-label">Room Number: </label> 
    <div class="controls"> 
    <?php foreach ($query->result_array() as $row): { ?> 
    <input type="checkbox" name="room_number" id="room_number" value="<?php echo $row['room_number'];?>" style="margin:10px" /><?php echo $row['room_number'];?><br> 
    <?php } ?> 
    <?php endforeach; ?> 
    <?php echo form_error('room_number'); ?> 
    </div>  
</div> 

* Теперь, когда пользователь отправляет форму, мне нужно заполнить таблицу базы данных, с каждая строка для флажка «checked». Однако нижеприведенный код/​​метод подает только одну строку. *

Контроллер:

foreach($this->input->post('room_number') as $rm){ // 118 
     $newReservation = array (
      'guest_id' => $guest_id, 
      'room_number' => $this->input->post('room_number'), 
      'room_type' => $this->input->post('room_type'), 
      'meal_type' => $this->input->post('meal_type'), 
      'extra_beds' => $this->input->post('ext_beds'), 
      'purchases' => 0, 
      'guest_count' => $this->input->post('number_of_guests'), 
      'checkin' => $this->input->post('start_date'), 
      'checkout' => $this->input->post('end_date'), 
      'duration' => $this->input->post('reservation_duration'), 
      'total' => $this->input->post('total'), 
      'guest_status' => $this->input->post('guest_status'), 
      'payment_status' => 'Pending', 
      'travel_agent' => $token, 
      'time_stamp' => $now 
     ); 
     $this->group_reservations_model->populate_new_reservations_table($newReservation); 

Модель:

function populate_new_reservations_table($newReservation) { 
    $this->db->trans_begin(); 
    $this->db->insert_batch('reservations', $newReservation); 

    if ($this->db->trans_status() === FALSE) { 
     $this->db->trans_rollback(); 
     return false; 
    } 
    else { 
     $this->db->trans_commit(); 
     return true; 
    } 
} 

Он возвращает следующие ошибки:

PHP-ошибка была обнаружена

Серьезность: Предупреждение

сообщение: Недействительный аргумент для Еогеасп()

Имя файла: Контроллеры/group_reservations.php

Порядковый номер: 118

+0

Выяснилось! http://paste.ubuntu.com/5960145/ – user2662050

+0

попробуйте этот вспомогательный класс https://github.com/nu1ww/ci_multiple_checkbox –

ответ

0

У вас есть несколько флажков с тем же именем. Использовать name="room_number[]" istead name="room_number".

Удачи;)

Смежные вопросы