Ik wilde de onderstaande gegevens opslaan in mijn database:


<input id="618" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="618" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">

<input id="619" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="619" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">

<input id="620" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="620" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">


Mijn database omvat een ID-, naam- en functie-veld.
Omdat de pagina dynamisch is, en er ook nieuwe velden kunnen worden aangemaakt wil ik alles wat op een bepaald moment op de pagina staat saven via een array.
Maar... hoe?

Hoe lees ik dit uit?

Iets als: if (isset($_POST['titelnaam'])) {
Maarja... hoe krijg ik het dan bij het juiste ID gesaved?
Ik vraag mij af of het niet wenselijker zou zijn om je array te sorteren op de ID-nummers i.p.v. op de titelnaam en de titelfunctie?

Dan zou ik eerder zoiets gebruiken:

<input id="618" type="text" name="titel[618]['naam']" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="618" name="titel[618]['functie']" value="" placeholder="Functie" class="form-control" style="width:200px;">


Dan kan je nog makkelijker je array uitlezen en je data ophalen.
Maar een heel concrete vraag, want dan ben ik er.
Als ik deze code gebruik Arien:


<input id="618" type="text" name="titel[618]['naam']" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="618" name="titel[618]['functie']" value="" placeholder="Functie" class="form-control" style="width:200px;">


Hoe lees de array dan uit?

Met andere woorden: ik moet geloof ik zoiets maken, maar hoe?


$array = array($_POST['titel']);
foreach($array as $key => $waarde) {
   // hier alles de database in...?
} 
Klopt. Let op dat waarde dan een array is!
Met print_r() kan je deze ter debugging bekijken.
Je bedoelt het volgende?


$waarde = array($_POST['titel']);
foreach($array as $key => $waarde) {
   // hier alles de database in...?
}
Nee, je $waarde in je foreach zelf is een array op zich, die dan de elementen naam en functie bevat.
Als je slechts per keer één naam/functie paar door wilt geven kun je ook prima selectief zijn in de informatie die je doorgeeft. Je geeft dan enkel een id, naam en titel door. Dit kun je bereiken door niet heel $_POST over de schutting te gooien, maar bijvoorbeeld door de velden-van-interesse te bundelen door middel van een HTML element (bijvoorbeeld een span), of op grond van id's de informatie er uit te peuteren.

Beide strategieën zijn vrij makkelijk te implementeren met behulp van jQuery, maar wen er vast aan dat er veel kan met jQuery, maar dat je dan wel even (zelf) moet (uit)zoeken hoe je dit voor elkaar krijgt.

Maar eerst moet je weten wat je wilt. Welke informatie wil je doorgeven op welk moment? De naam en functie apart als hier iets in verandert, of allebei, of alles, of wat?

Ook zou ik het wat anders aanpakken dan met een blur, zoals ik al in de andere thread heb beschreven.
Thanks werkt.
Misschien wil je de kijkers thuis ook even uitleggen hoe je het uiteindelijk opgelost hebt, zodat zij hier ook iets van kunnen leren. Het idee van een forum/community is dat je (op den duur) ook iets teruggeeft in plaats van alleen maar de informatie afhaalt en zelf vrolijk verder gaat.

Reageren