Ik heb een update formulier voor het wijzigen van items in een bbq pakket. Hiervoor gebruik ik de volgende loop:

<?php foreach ( $pakket_items as $item ): ?>
	<input type="text" name="items[]" class="form-control" value="<?= $item['item']; ?>" placeholder="Pakketitem" tabindex="5">
<?php endforeach; ?> 

Zo ver geen probleem. De items worden getoond als verwacht. In de controller heb ik vervolgens:

$pakket_id    		= filter_input(INPUT_POST, 'pakket_id', FILTER_SANITIZE_NUMBER_INT);
$items              = filter_input(INPUT_POST, 'items', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
foreach ( $items as $item )
{
	$update	=	$this->pakketten->pakket_items_wijzigen($pakket_id, $item);	
}

Maar hier gaat het dus fout.
In plaats dat de waardes worden opgeslagen zoals ik ze in het formulier heb veranderd worden alle waardes veranderd naar de waarde van het laatste item.


(1, 1, '2 stokjes sate'),
(2, 1, 'Runderhamburger (100%)'),
(3, 1, 'BBQ Worst'),
(4, 1, 'Procureur (gemarineerd en gekruid)'),
(5, 1, 'Vers gebakken stokbrood'),
(6, 1, 'Kruidenboter (eigen keuken)'),
(7, 1, 'Satesaus (eigenkeuken)'),
(8, 1, 'Knoflooksaus (eigen keuken)'),
(9, 1, 'Aardappelsalade (vers uit eigenkeuken)'),
(10, 1, 'Tomaat Komkomer salade (met dressing)')


dus de bovenstaande waardes veranderen nadat ik het formulier gesubmit heb in:

(1, 1, 'Tomaat Komkomer salade (met dressing)'),
(2, 1, 'Tomaat Komkomer salade (met dressing)'),
(3, 1, 'Tomaat Komkomer salade (met dressing)'),
(4, 1, 'Tomaat Komkomer salade (met dressing)'),
(5, 1, 'Tomaat Komkomer salade (met dressing)'),
(6, 1, 'Tomaat Komkomer salade (met dressing)'),
(7, 1, 'Tomaat Komkomer salade (met dressing)'),
(8, 1, 'Tomaat Komkomer salade (met dressing)'),
(9, 1, 'Tomaat Komkomer salade (met dressing)'),
(10, 1, 'Tomaat Komkomer salade (met dressing)')

Ik zit er nu al een paar uur naar te kijken maar weet niet wat ik fout doe.
Je overschrijft $update elke keer.

Bedoel je niet zo iets?

$update[] = $this->pakketten->pakket_items_wijzigen($pakket_id, $item);
Arjan hazewinkel op 26/09/2016 10:38:42

Je overschrijft $update elke keer.

Bedoel je niet zo iets?

$update[] = $this->pakketten->pakket_items_wijzigen($pakket_id, $item);

Hoi Arjan. Toen ik je antwoord zag dacht ik ja dat is de oplossing, hoe heb ik zo stom kunnen zijn. Maar toen ik het probeerde bleef ik het zelfde resultaat houden

Reageren