ik heb een form geschreven en een pagina die deze verstuurd waarop een foutmelding komt als iets niet is ingevuld maar hoe geef ik nu de foutmelding op de zelfde pagina weer zodat de persoon de gegevens niet opnieuw hoeft in te voeren als hij wat vergeten is het script is.


[code]
<?php
error_reporting(-1);
ini_set('display_errors', 1);

include '/verbinding.php';
include '/logincheck.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>


<html>

<form method="post" action="adresversturen.php">
<TABLE CELLSPACING="2" CELLPADDING="2" BORDER="0">
<tr>
<td>straatnaam:</td>
<td><input type="text" name="straat" /></td>
</tr>
<tr>
<td>huisnummer:</td>
<td><input type="text" name="huisnummer" /></td>
</tr>
<tr>
<td>postcode:</td>
<td><input type="text" name="postcode" /></td>
</tr>
<tr>
<td>plaats:</td>
<td><input type="text" name="plaats" /></td>
</tr>


<tr>
<td>land:</td>
<td><select name="landid" STYLE="width: 145px">
<?php


$sql = "execute spLandBox";

foreach ($db->query($sql) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}
?>
</select></td>
</tr>
<tr>
<td>Contactpersoon adres:</td>
<td><select name="opdrachtid" STYLE="width: 145px">
<option value="-1">Kies contactpersoon</option>
<?php
$sql = "{CALL spOpdrachtgeverBox (@Opdrachtgeverid=:opdrachtgever)}";
$stmt = $db->prepare($sql);

$opdrachtgeverid = $_SESSION['relatie'];

$stmt->bindParam(':opdrachtgever',$opdrachtgeverid, PDO::PARAM_STR);
$stmt->execute();
foreach ($stmt->fetchall(PDO::FETCH_ASSOC) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}


?>

</select></td>
</tr>


<tr>
<td>opmerkingen:</td>
<td><TEXTAREA Name="opmerking" rows="6" cols="50"></TEXTAREA></td>
</tr>
<?php


<tr>
<td><input type="submit" value="Verzenden">


<INPUT TYPE="button" VALUE="Terug" onClick="history.go(-1);return true;"></td>
</tr>

</form>

</html>




Je hoeft de sessie niet te vernietigen, je hoeft alleen maar de data eruit te halen. Makkelijkst is om alles in een key te zetten, waardoor je alleen die key hoeft te unsetten:
<?php
//in de pagina waarvandaan je redirect
$_SESSION['form_data'] = array();
foreach( $_POST as $key => $value ){
$_SESSION['form_data'][$key] = $value
}

//in de pagina waar je het er weer uithaalt
//(nadat je het hebt verwerkt)
unset( $_SESSION['form_data'] );
?>
ik ga het toch maar met javascript doen ik begin gewoon bij me simpelste formulier maar heb een voorbeeld


function validateForm()
 {
 var x=document.forms["myForm"]["fname"].value;
 if (x==null || x=="")
   {
   alert("First name must be filled out");
   return false;
   }
 }



function validateForm()
 {
 var x=document.forms["myForm"]["email"].value;
 var atpos=x.indexOf("@");
 var dotpos=x.lastIndexOf(".");
 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
   {
   alert("Not a valid e-mail address");
   return false;
   }
 }


maar hoe maak ik hier dan 1 van dat als je naam en email adres niet klopt het in de zelfde alert komt. javascript lijkt me toch een stukje mooier
En als er geen gebruik wordt gemaakt van javascript?
ondervang ik hem daarna door een foutmelding terug te geven van dat het niet stored procedure neit gelukt is helaas zal deze persoon wel alles opneiuw moeten invullen maar dat is maar de meeste mensen gebruiken wel java alleen hoe krijg het nog niet voor elkaar die 2 java valdaties aan elkaar te koppelen zodat het in de zelfde alert komt en zo als wat herwin neer zette voor dat sessies dat is wel weer een werk om in de form terug te krijgen daarom lijkt me java het makelijkst
ik doe he meestal op de volgende manier:
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_POST['bla'] = 'goed enzo'){
echo 'jeej en redirect of include of iets dergelijks';
}
else{
echo 'Foutje';
}
}
echo '
<form method="POST">
<input type="text" name="bla" value="'.(isset($_POST['bla']) ? $_POST['bla'] : "").'"
</form>
';
?>

code kan beter, maar het was alleen als voorbeeldje. Hoop dat je het idee snapt
Gerhard timmerman op 18/04/2012 12:03:51

de meeste mensen gebruiken wel java


java <> javascript!
met een javascript functie lijkt me toch een betere oplossing dan dat maar dan blijft de vraag hoe maak ik van die 2 1 script met 1 alert en hoe zet ik er meer achter elkaar ik heb het nu zo maar nu negeert hij ze allebij wat gaat hier fout plus hoe doe ik dat met die alert ik zou dit ook maar in de categori html doen omdat niet zo zeer met php te maken heeft

<script type="text/javascript">
function validateForm()
{
 var x=document.forms["contacttoevoegen"]["email"].value;
 var atpos=x.indexOf("@");
 var dotpos=x.lastIndexOf(".");
 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
   {
   alert("Geen geldig email adres");
   return false;
   }
 }
{
 var x=document.forms["contacttoevoegen"]["naam"].value;
 if (x==null || x=="")
   {
   alert("First name must be filled out");
   return false;
   }
 }
 
 
 
 
 </script>
ik heb het al op een andere manier opgelost maar wel met javascript ik zit momenteel niet achter mijn project computer dus zal morgen het script hier posten zodat andere mensen er ook wat aan hebben.
Ga dan aub verder in 1 topic en verwijs naar het andere. Nu ben je in 2 topics bezig over hetzelfde onderwerp.

Reageren