2015-11-25 2 views
0

Я пытаюсь сделать update_batch в codeigniter самым кратким способом. Моя форма состоит из цикла, в котором я генерировать кучу полей ввода, которые будут влиять на val колонку моей базы данных extra_config:codeigniter пакетное обновление определенного поля формы на основе его ID

<?php echo form_open('config/edit') ?> 
<table> 
<?php foreach ($config_by_page[$i] as $config_item): ?> 
<tr class="config-row"> 
    <td><?php echo $config_item['description'] ; ?></td> 
    <td class="edit"><input required data-id="<?php echo $config_item['id'] ?>" name="val" value="<?php echo $config_item['val'] ; ?>"></input></td> 
</tr> 
<?php endforeach; ?> 
</table> 
</form> 

Прямо сейчас - у меня есть идентификатор строки каждый «вал», как предполагается, быть привязанным к атрибуту данных data-id, потому что я не уверен, как сделать update_batch() и добавить значение val в соответствующую строку таблицы.

Вот мой контроллер:

$data = $this->input->post(NULL, TRUE); 
$this->config_model->edit_config($data); 

и вот моя модель:

public function edit_config($data){ 
    $this->db->update_batch('extra_scenarios', $data,'id'); 
} 

Как наиболее сжато включать идентификатор строки обновление партии должно публикует? Я не хочу создавать массив массивов вручную, потому что мне нужно обновить почти 100 разных строк.

+0

yiu пытаются обновить поле 'val'? –

+0

yes, обновить поле val, где столбец id равен атрибуту id из поля ввода (или получить этот входной идентификатор другим способом) – mheavers

ответ

0

здесь вопрос

name="val" 

это должно быть массивом

name="val[]" 
+0

Извините - я в замешательстве - как он узнает, что значение val должно быть привязано к соответствующему идентификатору? В моей таблице есть несколько столбцов, и для обновления поля «val» каждой строки, где id равен id из сообщения – mheavers

+0

, см. Выше ответ, сделайте так: «name =» val [идентификатор базы данных здесь] «' –

+0

Если я это сделаю без изменения модели или контроллера, я получаю: «В одной или нескольких строках, переданных для пакетного обновления, отсутствует указанный индекс.» – mheavers

1

Вы можете изменить входное имя поля, как показано ниже, так что вы получите массив конфигурации на отправить:

<input required name="config[<?php echo $config_item['id'];?>]" value="<?php echo $config_item['val'] ; ?>"/> 
+0

Спасибо - я не уверен, как изменить мою модель, чтобы использовать эти данные? – mheavers

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