Supersnail
Terugkerende gebruiker
- Lid geworden
- 25 jul 2001
- Berichten
- 1.804
Dat is raar. "AchternaamX", "VoornaamX" en "GeboortedatumX" komen helemaal niet voor in de $_POST array. Hoe ziet je formulier er nu uit?
Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>
<body bgcolor="#FFF9D1">
<p align="center"><img src="banner.png" width="922" height="180" /></p>
<script type="text/javascript">
var totalFields = 1;
function createForm()
{
var i, spaces, data = '', obj, getal;
getal = document.getElementById('aantal').value; //hier staat het aantal velden in.
obj = document.getElementById('waarheen'); //hierheen gaan we zo schrijven
//controleer hoeveelheid direct ingevoerde velden
if(getal > 6)
{
alert('Maximaal 6 Deelnemers, voor grotere groepen neemt u A.U.B contact met ons op.');
return false; //stop met verdere code uitvoeren
}
//controleer max. velden
if(totalFields == 6)
{
//optioneel
//alert('je hebt al 6 velden!');
return false;
}
for(i=totalFields;i<=getal;i++) //begin bij totalFields, anders krijg je dus dat je steeds weer een veld met een 'i' van 0 hebt
{
totalFields++; //doe totalFields + 1
data += "Voornaam" + i + " (zoals in paspoort):" + "<input type='text' size='10' name='Deelnemer" + i + "'>";
data += "Achternaam" + i + " (zoals in paspoort):" + "<input type='text' size='10' name='Achternaam" + i + "'>";
data += "Geboortedatum" + i + " :" + "<input type='text' size='10' name='Geboortedatum" + i + "'>";
data += "<br />";
}
obj.innerHTML += data;
}
</script>
<center>
<tr valign=top onfocus="MM_validateForm('aantal','','R','Telefoon','','RisNum','Email','','RisEmail','Adres','','R','Postcode','','R','Woonplaats','','R');return document.MM_returnValue"></tr>
<tr valign=top>
<td><form name=counter>
<div id='waarheen'> </div>
</form>
<table width="957" border="0" id="Deel">
<tr> <form action="sent.php" method="post">
<td width="300">Hoeveel Deelnemers:</td>
<td width="647"><input id='aantal' name=number type=text value="1" size=5>
<input type=button value="Selecteer" onClick="createForm();"></td>
</table>
<table width="960" border="0">
<tr>
<td width="301">Telefoon:</td>
<td width="649"><input name="Telefoon" type=text id="Telefoon" value=""></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="Email" type=text id="Email" value=""></td>
</tr>
<tr>
<td>Adres:</td>
<td><input name="Adres" type=text id="Adres" value=""></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input name="Postcode" type=text id="Postcode" value=""></td>
</tr>
<tr>
<td>Woonplaats:</td>
<td><input name="Woonplaats" type=text id="Woonplaats" value=""></td>
</tr>
</table>
<table width="960" border="0">
<tr>
<td width="300">Welk Resort?</td>
<td width="650"><select name="Resort" id="select">
<option>Amsterdam Manor</option>
<option>MVC Eagle Beach</option>
<option>The Mill</option>
<option>Renaissance</option>
<option>Bucutti</option>
</select></td>
</tr>
</table> </td>
<td><table width="960" border="0">
<tr>
<td width="300">Opmerkingen:</td>
<td width="650"><textarea name="Opmerking" id="Opmerking" cols="45" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td colspan=2><br>
<input name="Verzenden" type=submit value="Boeken!" ="">
</td><form/>
<table width="960" border="0">
<tr>
<td width="300"><a href="http://www.abctravel.nl" target="_blank" ><img src="./logo_abctravel.png" width="160" height="150" border="0" ></a></td>
<td width="300"><a href="http://www.aruba.com " target="_blank"><img src="./logo_aruba.png" width="130" height="86" border="0"></a></td>
<td width="346"><a href="http://www.zwitserleven.nl" target="_blank"><img src="./logo_zwitserleven.png" width="200" height="100" border="0"></a></td>
</tr>
</table></td>
</tr><tr><td><p> </p></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<p> </p>
<p> </p>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>formulier afhandeling</title>
</head>
<body>
<p>
<?php
$achternamen = array();
for ($i=1;$i<=5;$i++)
{
if (isset($_POST['Achternaam$i']))
{
$achternamen[] = $_POST["Achternaam$i"];
}
}
print_r($achternamen);
$voornamen = array();
for ($i=1;$i<=5;$i++)
{
if (isset($_POST["Voornaam$i"]))
{
$voornamen[] = $_POST["Voornaam$i"];
}
}
print_r($voornamen);
$geboortedatums = array();
for ($i=1;$i<=5;$i++)
{
if (isset($_POST["Geboortedatum$i"]))
{
$geboortedatums[] = $_POST["Geboortedatum$i"];
}
}
print_r($geboortedatums);
print_r($_POST);
// Eventueel is de informatie ook in een database op te slaan
$number = $_POST['number'];
$Telefoon = $_POST['Telefoon'];
$Email = $_POST['Email'];
$Adres = $_POST['Adres'];
$Postcode = $_POST['Postcode'];
$Woonplaats = $_POST['Woonplaats'];
$Resort = $_POST['Resort'];
$Opmerking = $_POST['Opmerking'];
//opmaak email, emailadres etc...
$formsent = mail('robin@abctravel.nl',
'Gegevens afkomstig van Zwitserleven Actie',
"Deelnemers: $number
Telefoon: $Telefoon
Email: $Email
Adres: $Adres
Postcode: $Postcode
Woonplaats: $Woonplaats
Resort: $Resort
Opmerkingen: $Opmerking
Achternamen: " . implode (",", $achternamen )
. "Voornamen:" . implode (",", $voornamen )
. "Geboortedata:" . implode (",", $geboortedatums),
"From: $Email\r\nBounce-to: Robin@abctravel.nl");
if ($formsent) {
echo "<p>Hallo $Email,<br><br> Bedankt voor uw boeking.
We zullen u zo spoedig mogelijk benaderen om de beschikbaarheid door te geven.</p>";
} else {
echo "<p>Sorry, maar er is iets misgegaan met uw boeking, heeft u alle velden juist ingevoerd?.</p>";
}
?>
</p>
</body>
</html>
<tr> <form action="sent.php" method="post">
<div id='waarheen1' style="display:none">
Voornaam1 (zoals in paspoort): <input type='text' size='10' name='Voornaam1'>
Achternaam1 (zoals in paspoort): <input type='text' size='10' name='Achternaam1'>
Geboortedatum1: <input type='text' size='10' name='Geboortedatum1'>
</div>
<div id='waarheen2' style="display:none">
Voornaam2 (zoals in paspoort): <input type='text' size='10' name='Voornaam2'>
Achternaam2 (zoals in paspoort): <input type='text' size='10' name='Achternaam2'>
Geboortedatum2: <input type='text' size='10' name='Geboortedatum2'>
</div>
<div id='waarheen3' style="display:none">
Voornaam3 (zoals in paspoort): <input type='text' size='10' name='Voornaam3'>
Achternaam3 (zoals in paspoort): <input type='text' size='10' name='Achternaam3'>
Geboortedatum3: <input type='text' size='10' name='Geboortedatum3'>
</div>
<div id='waarheen4' style="display:none">
Voornaam4 (zoals in paspoort): <input type='text' size='10' name='Voornaam4'>
Achternaam4 (zoals in paspoort): <input type='text' size='10' name='Achternaam4'>
Geboortedatum4: <input type='text' size='10' name='Geboortedatum4'>
</div>
<div id='waarheen5' style="display:none">
Voornaam5 (zoals in paspoort): <input type='text' size='10' name='Voornaam5'>
Achternaam5 (zoals in paspoort): <input type='text' size='10' name='Achternaam5'>
Geboortedatum5: <input type='text' size='10' name='Geboortedatum5'>
</div>
<div id='waarheen6' style="display:none">
Voornaam6 (zoals in paspoort): <input type='text' size='10' name='Voornaam6'>
Achternaam6 (zoals in paspoort): <input type='text' size='10' name='Achternaam6'>
Geboortedatum6: <input type='text' size='10' name='Geboortedatum6'>
</div>
<td width="300">Hoeveel Deelnemers:</td>
<td width="647"><input id='aantal' name=number type=text value="1" size=5>
<input type=button value="Selecteer" onClick="createForm();"></td>
if (isset($_POST['Achternaam$i']))
if (isset($_POST['Achternaam$i']) && !empty($_POST['Achternaam$i']))
if (isset($_POST["Achternaam$i"]) && !empty($_POST["Achternaam$i"]))
if (isset($_POST["Voornaam$i"]) && !empty($_POST["Voornaam$i"]))
if (isset($_POST["Geboortedatum$i"]) && !empty($_POST["Geboortedatum$i"]))
if (isset($_POST['Achternaam$i']) && !empty($_POST['Achternaam$i']))
{
$achternamen[] = $_POST['Achternaam$i'];
if (isset($_POST["Achternaam$i"]) && !empty($_POST["Achternaam$i"]))
{
$achternamen[] = $_POST["Achternaam$i"];
Voornaam 1 :jan
Achternaam1:Beton
Geboortedatum 1: 30-12-1966
Voornaam 2 :Lisa
Achternaam 2:Beton
Geboortedatum 2: 24-05-1988
$formsent = mail('robin@abctravel.nl',
'Gegevens afkomstig van Zwitserleven Actie',
"Deelnemers: $number
Telefoon: $Telefoon
Email: $Email
Adres: $Adres
Postcode: $Postcode
Woonplaats: $Woonplaats
Resort: $Resort
Opmerkingen: $Opmerking
Achternamen: " . implode (",", $achternamen )
. "Voornamen:" . implode (",", $voornamen )
. "Geboortedata:" . implode (",", $geboortedatums),
"From: $Email\r\nBounce-to: Robin@abctravel.nl");
$body = "Deelnemers: $number
Telefoon: $Telefoon
Email: $Email
Adres: $Adres
Postcode: $Postcode
Woonplaats: $Woonplaats
Resort: $Resort
Opmerkingen: $Opmerking";
for ($i=0;$i<count($achternamen);$i++)
{
$body .= "Voornaam " . $i+1 . ": " . $voornamen[$i]
. "Achternaam " . $i+1 . ": " . $achternamen[$i]
. "Geboortedatum " . $i+1 . ": " . $geboortedatums[$i];
}
$formsent = mail('robin@abctravel.nl',
'Gegevens afkomstig van Zwitserleven Actie',
$body,
"From: $Email\r\nBounce-to: Robin@abctravel.nl");
Ik hoop dat dit werkt. In een ander topic werkte iets dergelijks ($i+1) niet.
for ($i=1;$i<=$number;$i++)
{
$body .= "Voornaam " . $i . ": " . $voornamen[$i-1]
. "Achternaam " . $i . ": " . $achternamen[$i-1]
. "Geboortedatum " . $i . ": " . $geboortedatums[$i-1];
}
for ($i=1;$i<=$number;$i++)
{
$body .= "\r\n Voornaam " . $i . ": " . $voornamen[$i-1]
. "\r\n Achternaam " . $i . ": " . $achternamen[$i-1]
. "\r\n Geboortedatum " . $i . ": " . $geboortedatums[$i-1];
}
Implode wordt niet meer gebruikt, maar zoals je op de site van PHP kunt lezen "plakt" implode alle elementen van een array achter elkaar met een bepaald teken er tussen (in dit geval met een komma).Hoewel alleen de implode en de for lus, daar snap ik nog niet exact wat ik doe.
for ($i=1;$i<=$number;$i++)
$body .= "\r\n Voornaam " . $i . ": " . $voornamen[$i-1]
De validatie moet je sowieso in PHP doen. Javascript-validatie is makkelijk to omzeilen (zet javascript uit). Dat neemt niet weg dat je, voor de goedwillende gebruiker die per ongeluk een fout maakt, naast PHP-validatie ook javascript-validatie kunt gebruiken. Zeker als je realtime wilt valideren zou ik beide gebruiken. Realtime validatie met javascript en, zodat het ook werkt voor diegenen die javascript uit hebben staan (of de validatie op een andere manier omzeilen), niet-realtime validatie met PHP (realtime validatie kan met PHP alleen als je AJAX gebruikt, maar dan maak je weer gebruik van javascript).
<form action="sent.php" method="post" onSubmit = "return MM_validateForm()">
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.