обновление всех входных данных формы в пакете в codeigniter

Я пытаюсь выяснить, почему мое пакетное обновление в codeigniter не работает.

Это мой код:

<?php echo form_open('about/update_approach',array('class' => 'approach-form')) ?>

<? foreach ($approach_content as $i=>$approach): ?>
<input type="hidden" name="id[]" value="<?= $approach['id'] ?>">
<div class="admin-group ">
<div class="admin-form-item">
<label for="title">Title</label>
<input type="text" maxlength="128" value="<?= $approach['title']; ?>" required name="title[]">
</div>
<div class="admin-form-item">
<label for="title">Text</label>
<input type="text" maxlength="256" value="<?= $approach['text']; ?>" required name="text[]">
</div>
</div>
<? endforeach ?><?php echo form_submit($dataSubmit);?>

<?php echo form_close(); ?>

МОДЕЛЬ:

public function update_approach(){
$data = $this->input->post(NULL,TRUE);
$this->db->update_batch('1985_approach', $data, 'id');
}

Но если я сделаю это, я получу ошибку:

One or more rows submitted for batch updating is missing the specified index.

И если я сделаю print_r($this-input->post());

<?php
Array(
[id] => Array(
[0] => 1[1] => 2[2] => 3[3] => 4[4] => 5[5] => 6
) [title] => Array(
[0] => CREATIVEZ[1] => CURATION[2] => ARTISTS[3] => PRODUCTION[4] => ENGAGEMENT[5] => RESULTS
) [text] => Array(
[0] => Fromconceptthroughexecution,
ourcreatorsarethecreativedirectors,
thecontentmakers and theconversationalists . [1] => Loremipsumdolorsitamet,
consecteturadipiscingelit . Donecpretiumsemperaugue,
ascelerisquearculuctusvitae . Inporttitorleo . [2] => LoremipsumIndolorminimmagnaDuisexquieaintempor . [3] => LoremipsumReprehenderitquiautedo utlaborumoccaecatametconsecteturincididuntelitenimeiusmodvoluptatedo aliqua . [4] => LoremipsumExercitationestdolorminimdoloreadidnonlaborismollitExcepteurnostrudexadipisicingdoloreculpa . [5] => LoremipsumNoneaetvelitaliquipsedculpadoloranimdolormagnaintemporid .
)
)

0

Решение

Долгое время не использовал Code Igniter.
Я проверил documnentation и что вы найдете там это:

$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name 2' ,
'date' => 'My date 2'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name 2' ,
'date' => 'Another date 2'
)
);

$this->db->update_batch('mytable', $data, 'title');

У вас есть правильные данные, но ложная структура. Преобразовать данные в:

array(
array(
'id'=>1,
'title'=>'CREATIVEZ',
'text'=>'some text'
),
array(
'id'=>2,
title'=>'CURATION',
'text'=>'some text'
)
);

В PHP вы часто используете ассоциативные массивы вместо традиционных объектов.
Так что думайте об отдельных записях массива php как о традиционных объектах.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector