Ik heb onderstaande HTML:

			<!-- Education -->
			<div class="form with-line">
				<h5>Studies</h5>
				<div class="form-inside">

					<!-- Add Education -->
					<div class="form boxed box-to-clone education-box">
						<a href="#" class="close-form remove-box button"><i class="fa fa-close"></i></a>
						<input class="search-field" name="data[school]" type="text" placeholder="Schoolnaam" value=""/>
						<input class="search-field" name="data[type]" type="text" placeholder="Type diploma bvb A2" value=""/>
						<input class="search-field" name="data[start]" type="text" placeholder="Startdatum" value=""/>
						<input class="search-field" name="data[einde]" type="text" placeholder="Einddatum" value=""/>
					</div>

					<a href="#" class="button gray add-education add-box"><i class="fa fa-plus-circle"></i> Studies toevoegen</a>
				</div>
			</div>


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:

	$result = $_POST['data'];
	
	echo '<pre>';
	print_r($result);
	echo '</pre>';


Het werkt helemaal niet. De waarden komen niet mee en ik krijg maar 1 array met enkel de eerste box.
Wat gaat er fout?
Je hebt nog lege brackets nodig:


name="data[][school]"


Is een beetje hetzelfde als in PHP:
<?php
$array[] = 'een nieuw element aan de array';
?>
Heb ik toegevoegd maar ik krijg nog steeds geen data door. Dus was ik op zoek naar een alternatief maar ook dat werkt niet:


			<!-- Education -->
			<div class="form with-line">
				<h5>Studies</h5>
				<div class="form-inside">

					<!-- Add Education -->
					<div class="form boxed box-to-clone education-box">
						<a href="#" class="close-form remove-box button"><i class="fa fa-close"></i></a>
						<input class="search-field" name="data[][school]" type="text" placeholder="Schoolnaam" value=""/>
						<input class="search-field" name="data[][type]" type="text" placeholder="Type diploma bvb A2" value=""/>
						<input class="search-field" name="data[][start]" type="text" placeholder="Startdatum" value=""/>
						<input class="search-field" name="data[][einde]" type="text" placeholder="Einddatum" value=""/>
					</div>

					<a href="#" class="button gray add-education add-box"><i class="fa fa-plus-circle"></i> Studies toevoegen</a>
				</div>
			</div>


	echo '<pre>';
	print_r($_POST['data']);
	echo '</pre>';
	
	
// alternatief
$mailData = '';
for($i = 0; $i < count($_POST['data']); $i++) {
    $mailData .= '#' . $_POST['school'][$i] . ' | ';
    $mailData .= $_POST['type'][$i] . ' | ';
    $mailData .= $_POST['start'][$i] . "<br>\n";

echo $mailData;
euh helemaal geen data? Hoe ziet je <form ... regel er uit?
<form method="post"> gebruik ik om te testen nu. Later zal het form verstuurd worden via ajax.
Ik heb data op de eerste [school] maar wel op een volledig verkeerde manier.

resultaat:

Array
(
    [0] => Array
        (
            [school] => piopiop
        )

    [1] => Array
        (
            [type] => oipiopoi
        )

    [2] => Array
        (
            [start] => poipiopiop
        )

    [3] => Array
        (
            [einde] => ppppppp
        )

    [4] => Array
        (
            [school] => 
        )

    [5] => Array
        (
            [type] => 
        )

    [6] => Array
        (
            [start] => 
        )

    [7] => Array
        (
            [einde] => 
        )

)
>> Als ik nu op de knop Studies toevoegen klik krijg ik daaronder nog zo een box, enz.

Komt die box dan wel tussen je bestaande <form> en </form> elementen ? Want anders is het logisch dat de data niet meegestuurd wordt
Ja die komt er inderdaad tussen.
Hoe verander ik de array dat [0] de 4 velden (school, type, start, einde) heeft en daarna dan [1], [2], enz... ?

Toevoeging op 20/09/2016 20:29:43:

Nu zie ik dat die data dus wel meekomt. Waarschijnlijk een refresh foutje:

Array
(
    [0] => Array
        (
            [school] => zeerzrze
        )

    [1] => Array
        (
            [type] => rzerzerr
        )

    [2] => Array
        (
            [start] => etretreytr
        )

    [3] => Array
        (
            [einde] => yttryutuytuytu
        )

    [4] => Array
        (
            [school] => piopiopio
        )

    [5] => Array
        (
            [type] => uiyiiy
        )

    [6] => Array
        (
            [start] => tyutyutyu
        )

    [7] => Array
        (
            [einde] => rtyrytry
        )

    [8] => Array
        (
            [school] => 
        )

    [9] => Array
        (
            [type] => 
        )

    [10] => Array
        (
            [start] => 
        )

    [11] => Array
        (
            [einde] => 
        )

)


Dat zijn dus 2 van die forms.
Waarom is die laatste leeg?

Toevoeging op 20/09/2016 21:49:30:

Eigenlijk zou ik dit nodig hebben:

			<!-- Education -->
			<div class="form with-line">
				<h5>Studies</h5>
				<div class="form-inside">

					<!-- Add Education -->
					<div class="form boxed box-to-clone education-box">
						<a href="#" class="close-form remove-box button"><i class="fa fa-close"></i></a>
						<input class="search-field" name="data[0][school]" type="text" placeholder="Schoolnaam" value=""/>
						<input class="search-field" name="data[0][type]" type="text" placeholder="Type diploma bvb A2" value=""/>
						<input class="search-field" name="data[0][start]" type="text" placeholder="Startdatum" value=""/>
						<input class="search-field" name="data[0][einde]" type="text" placeholder="Einddatum" value=""/>
					</div>

					<a href="#" class="button gray add-education add-box"><i class="fa fa-plus-circle"></i> Studies toevoegen</a>
				</div>
			</div>


Cloned form:

			<!-- Education -->
			<div class="form with-line">
				<h5>Studies</h5>
				<div class="form-inside">

					<!-- Add Education -->
					<div class="form boxed box-to-clone education-box">
						<a href="#" class="close-form remove-box button"><i class="fa fa-close"></i></a>
						<input class="search-field" name="data[1][school]" type="text" placeholder="Schoolnaam" value=""/>
						<input class="search-field" name="data[1][type]" type="text" placeholder="Type diploma bvb A2" value=""/>
						<input class="search-field" name="data[1][start]" type="text" placeholder="Startdatum" value=""/>
						<input class="search-field" name="data[1][einde]" type="text" placeholder="Einddatum" value=""/>
					</div>

					<a href="#" class="button gray add-education add-box"><i class="fa fa-plus-circle"></i> Studies toevoegen</a>
				</div>
			</div>


Enz...
Ik denk dat mijn array dan wel goed komt. Maar ik zie niet hoe ik dit kan doen hier.
Hoe kan je die cijfers [0], [1], enz toewijzen aan een gecloonde gedeelte?
Die cijfers toewijzen is niet nodig. Lege brackets zijn genoeg.

Kan ik je pagina ergens bekijken?
Wat wil je juist zien op die pagina? Ik kan de code kopiƫren? Of anders je de link geven via pm?
Heb je de link via pm doorgestuurd.
Frank, ik ben het toch niet helemaal met je eens.
Wanneer je eenduidige velden hebt, say "naam[]" e.d. dan heb je geen nummers nodig. Is je array multidimensionaal wel, anders krijg je dit:
naam[0][voornaam]
naam[1][achternaam]

etc etc.
Je kunt het uiteraard wel omdraaien, dan heb je dat probleem niet. De array krijgt dan alleen een wat vreemde vorm:
naam[voornaam][]
naam[achternaam][]

Dit leidt tot:
naam[voornaam][0]
naam[achternaam][0]

Zodra je dan opnieuw bij voornaam uitkomt nummert hij door zoals je zou willen.
Dat probleem heb ik dus met data[0][voornaam] en data[1][achternaam] bvb
En ja de array is multidimensionaal zie voorbeeld die ik gepost heb.

Reageren