Doormiddel van Javascript kun je als je op een button klikt een nieuw input veld aanmaken. Deze krijgen allemaal dezelfde name en class. Alles wordt nu doormiddel van een mailtje naar de user gestuurd. Alleen pakt Javascript en PHP de laatst ingevulde input field. Dit is de code voor het aanmaken van een nieuw veld in Javascript:

function addForm()
		{
			var newDiv = document.createElement("div");
			newDiv.innerHTML+='<div id="new_'+addNumber()+'"><input type="number" name="number" id="number" value="number"/> <select class="form-control" name="option[]" id="option"><option>Chefkok</option><option>Barman</option><option>Bediening</option></select> <input type="button" value="X" onclick="deleteParentElement(this)"></div>';
			container.appendChild(newDiv);
		}


Dit is de PHP code voor het verzenden voor de mail:

<?php

$naam      = $_POST['naam'];
$email     = $_POST['email'];
$number    = $_POST['number'];
$option    = $_POST['option'];


			$to      = $email; // Send email to our user
			$subject = 'Web formulier'; // Give the email a subject 
			$message = '
			 Beste ,
			
			'.$naam.' heeft de volgende personen nodig: '.$number.'x een '.$option.'.
			We hopen u voldoende te hebben geinfomeerd!
?>

Het verzenden gaat goed, alleen pakt hij bij "volgende personen nodig" alleen de laatste ingevulde value's. Is het mogelijk om in een soort van loop te krijgen? Dat je krijgt: 4x een persoon1
2x een persoon2
Alle gegevens komen uit het form.

Alvast bedankt!
lijn 13 klopt nergens naar. Die hoort voor je ob_get_clean() op regel 12. Want dit is ook een onderdeel van je output die je in je mail wilt plaatsen.

<?php

$naam      = $_POST['naam'];
$email     = $_POST['email'];
$datum     = $_POST['datum'];

$to      = $email; // Send email to our user
$subject = 'Web formulier'; // Give the email a subject
$message = '
Beste ,
            
'.$naam.' heeft de volgende personen nodig:';
ob_start(); // start output buffering
    foreach ($_POST['number'] as $index => $value) {
        echo $value.' keer een '.$_POST['option'][$index].'<br />';
    }
$bezetting = 'op '.$datum.'
We hopen u voldoende te hebben geinfomeerd!';
ob_get_clean(); 
?>


Alleen de mail wordt na: Beste , (naam) heeft de volgende personen nodig:
afgekapt en dan worden de gegevens niet meer laten zien.
Je doet het nog niet goed, die afsluitende tekst hoort VOOR je $bezetting:


<?php
ob_start(); // start output buffering
$message = '
Beste ,
            
'.$naam.' heeft de volgende personen nodig:';

    foreach ($_POST['number'] as $index => $value) {
        echo $value.' keer een '.$_POST['option'][$index].'<br />';
    }
	echo 'op '.$datum.'
We hopen u voldoende te hebben geinfomeerd!';
$bezetting = ob_get_clean(); 
?>


Welke code-editor gebruik je? Want die zou eigenlijk al lang aangeslagen moet zijn op je vorige code die niet klopte.
Ik gebruik Sublime Text 2, maar krijg nog steeds niet meer data. Na de zin "heeft de volgende personen nodig;" krijg ik niets meer.
Wat zegt een print_r() voor je foreach over $_POST['number']
Waar moet ik die plaatsen als ik die voor de foreach plaats krijg ik een error dat de foreach nog niet verwacht wordt. Kan het omdat ik na die eerste zin de message afsluit door ";"?
Gewoon, dit op de lijn voor je foreach zetten. Dan zie je hoe en of de array gevuld is.

echo "<pre>".print_r($_POST['number'],true)."</pre>";
.

Maar hoe is je ervaring met PHP eigenlijk. Ik zie je eigenlijk een hoop syntax-fouten maken.
Gebeurt niks anders. Alles blijft hetzelfde. Krijg niks te zien.
En met $_POST in de print_r?
Dan moet je al je data in je POST-request zien.
Nog steeds niks. Kan het omdat ik na die eerste zin de message afsluit door ";"?

Reageren