Als ik nu op de knop Studies toevoegen klik krijg ik daaronder nog zo een box, enz... Ik kan dus meerdere boxen op de pagina zetten.
Maar als ik nu het form wil posten doe ik dit:
Om dat te voorkomen kun je dus handmatig nummeren, of de array omkeren. Dus iets als:
data[voornaam][]
data[achternaam][] etc. Dit kun je dan opvragen met een kleine aanpassing aan je eerder gegeven code:
<?php
$mailData = '';
for($i = 0; $i < count($_POST['data']['school']); $i++) {
$mailData .= '#' . $_POST['data']['school'][$i] . ' | ';
$mailData .= $_POST['data']['type'][$i] . ' | ';
$mailData .= $_POST['data']['start'][$i] . "<br>\n";
Het zou kunnen dat jullie helemaal gelijk hebben. Ik heb nog even gekeken hoe Symfony dit doet maar die vult ook de getallen in inderdaad. Ik zou dan zoals Ben aangeeft een tellertje bijhouden, ook in javascript is dit niet al te ingewikkeld. Ik zou wel de opbouw zo houden:
Ik kan die opbouw niet aanhouden denk ik, Frank. Ik weet niet hoeveel boxen gecloned gaan worden dus kan ik toch niet $data[0]['school'] en $data[1]['school'] voorzien? Hoe zit het met die telling?
Ben zijn idee moet ik nog eens uittesten, maar die zou automatisch nummeren. Is dat niet beter?
Toevoeging op 22/09/2016 12:19:40:
Ik heb wel nog steeds een lege waarde op het einde. Dus als er bvb 2 boxen zijn heb ik 3 lijnen maar de laatste is leeg. Er is dus altijd 1 meer dan het aantal boxen (maar dan met lege waarden). Hoe krijg ik die weg?
Ik had geprobeerd met array_pop maar dan gaat het helemaal fout.
Laat de HTML zoals die nu is voor een form eens zien, misschien valt er dan wat op, want erg logisch is dat niet. Gebruik je ook niet per ongeluk ergens anders nog een variant van de name op de pagina?
Waarom vind ik dat dan zo moeilijk om te geloven? Voeg je teveel elementen doe via JS oid? Want je hoort geen lege elementen te krijgen in een POST, zo simpel is het. En je kan wel proberen de loze elementen te filteren, maar je hebt ergens in je HTML of Javascript een fout zitten.
Dat is helemaal raar, want array_filter gebruikt normaliter een callback om te bepalen welke velden in de array horen en welke niet. Kan daardoor gevaarlijk worden, als er bijvoorbeeld velden worden verwijderd welke niet ingevuld zijn.
Wat gebeurt er als je $_POST gewoon dumpt?
Dus:
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
?>
Ik heb een vermoeden dat $_POST['studie']['school'] teveel velden bevat, waardoor het mis gaat.