Hallo allemaal,
Ik heb, na veel tobben en prutsen én de hulp van forum gebruikers, een aantal perfect werkende formulieren waarvan de gegevens, na submit, zowel in een database worden weggeschreven en verzonden via mail.
In de formulieren komen nogal wat keuzelijsten voor die ik laat vullen met gegevens uit een tabel. Dit doe ik met aanroepen van externe functies.
Wat me niet lukt is het valideren van de gegevens. Ik gebruikte voorheen een javascript maar dat werkt niet meer nu ik php toepas. Het valideren met php zelf, hiertoe heb ik een aantal verschillende mogelijkheden uitgeprobeerd, gaat ook niet helemaal goed.
Ik wil graag dat, als een gegeven niet is ingevuld, het formulier opnieuw wordt getoond en de juist ingevulde gegevens laat staan zodat alleen de verkeerde velden opnieuw moeten worden ingevuld. Pas daarna mogen de gegevens verwerkt worden.
Kan iemand me hierbij een eindje op weg helpen?
Mijn code ziet er als volgt uit (ingekort):
<BODY>
<?php
include("../include/connect.inc.php"); //database connectie
include("../include/func.inc.php"); //functies in extern bestand
if(empty($_POST['Submit'])) //als het formulier nog niet verzonden is ofwel er is niet op Submit geklikt
{ // open eerste accolade van if submit
?>
<!-- De tabel met formulier, wordt afgehandeld met php -->
<TABLE>
<form method="post" name="audits" onsubmit="javascript: return validateForm();" action="<?php echo $_SERVER['../PHP_SELF']; ?>" >
<TABLE> De tabel binnen het formulier met in een aantal cellen een aanroep naar een functie
<?php
// keuzelijst betaling
kiesbetaal();
?>
</TABLE>
</FORM></TD>
</TABLE>
<?php
} // sluit eerste accolade van if submit
elseif(!empty($_POST['Submit'])) //het formulier is verzonden c.q er is op Submit geklikt
{ // open accolade voor elseif
// Schrijf de gegevens in de tabel
$insert = "INSERT INTO enz....
$query = mysql_query($insert) OR die(mysql_error());
// Toon de ingevulde gegevens op de pagina
echo ("<font color=\"#003366\">De volgende gegevens zijn toegevoegd: </font><br>\n");
Hierna alle waarden onder elkaar
?>
<?php
// Als vestiging is nn dan mailen naar xxx
switch($vestiging) { // open accolade switch
case "Rotterdam";
code
break;
} // sluit accolade switch
// Verzend de gegevens via mail
mail(waarden);
// Dit geeft een berichtje weer dat het formulier is verzonden.
echo "<B><font color=\"#003366\">De informatie is verzonden.</font></B>";
} // sluit accolade voor elseif
?>
</BODY>
</HTML>
569 views