login  Naam:   Wachtwoord: 
Registreer je!
 Forum

na validatie variabelen leeg

Offline ramonlouter - 12/10/2005 00:32
Avatar van ramonlouterNieuw lid hoi,

ik heb een tweetal scripts die hetzelfde zijn. Alleen is het zo dat bij het ene script er nog een aantal velden uit een database worden gehaald. Hier dient ook te worden ingelogd.
Het andere script heeft gewoon een leeg formulier.

Als ik het formulier met deels gevulde gegevens verstuur en niet alle velden goed zijn ingevult, krijg je de melding welke velden, etc.
Als ik dan terug ga naar de vorige pagina met javascript zijn de waardes die ik handmatig heb ingevult weer leeg en de waardes uit de database zijn er gewoon.

kan iemand mij vertellen hoe ik de gegevens wel kan onthouden zodat na de validatie niet alles weer opnieuw ingevult moet worden.
Ik heb bij het formulier zonder dat er gegevens uit de database worden gehaald geen problemen met het onthouden van de variabelen, hier staan dus wel de gegevens als je teruggaat bij de melding dat er velden niet zijn ingevult.

hieronder een deel van de code

  1. if(strlen($_POST['opdrachtgever']) == 0)
  2. {
  3. $error_msg = "- U heeft geen naam ingevult<br/>";
  4. }
  5.  
  6. if(strlen($_POST['opdrachtgever_email']) == 0)
  7. {
  8. $error_msg .= "- U heeft geen email-adres ingevult<br/>";
  9. }
  10.  
  11. if(!empty($error_msg))
  12. {
  13. //Een van de velden werd niet goed ingevuld
  14. echo $error_msg;
  15. echo "<br>Klik <a href=javascript:history.back(1)>hier</a> en ga terug.";
  16. }
  17. else


en er zijn nog meer variabelen, maar dit werkt op dezelfde wijze.

hopelijk kan iemand me helpen

Gr. Ramon

8 antwoorden

Gesponsorde links
Offline Gerard - 12/10/2005 00:35
Avatar van Gerard Ouwe rakker Je kan, bij het verzenden van de pagina, de antwoorden even in een SESSION var steken. Zodat, wanneer het niet goed is, je deze kan uitlezen in het eerste formulier als ze op 'hier' klikken.
Offline ramonlouter - 12/10/2005 00:37
Avatar van ramonlouter Nieuw lid bedankt voor de snelle reactie

moet ik dan voor alle variabelen een sessie aanmaken, en dat weer aanroepen met $_GET('var')
Offline Gerard - 12/10/2005 00:40
Avatar van Gerard Ouwe rakker De $_SESSION['var'] variabelen die je maakt van je $_POST/$_GET variabelen kan je op die vorige pagina (het originele form) gewoon weer oproepen via $_SESSION['var'].
Offline ramonlouter - 12/10/2005 00:43 (laatste wijziging 12/10/2005 00:54)
Avatar van ramonlouter Nieuw lid dus je maakt een regel voor elke variabele aan

$_POST('var') = $_Session('var')

en hoe krijg je vervolgens je waarde weer in je html formulier

kan iemand een voorbeeld geven met fictieve variabelen, dan kan ik hiermee verder proberen en weer gerichte vragen stellen
alvast bedankt
Offline Gerard - 12/10/2005 01:53
Avatar van Gerard Ouwe rakker
  1. <?php
  2. // Starten van de sessie
  3.  
  4. // Kleine functie maken voor het checken van de vars
  5. function checkSet($sVar) {
  6.  
  7. if (isset($sVar)) {
  8.  
  9. return ' value="'.$sVar.'"';
  10.  
  11. } else {
  12.  
  13. return '';
  14.  
  15. }
  16.  
  17. }
  18.  
  19. // Controleren of het form verzonden is
  20. if ($_SERVER['REQUEST_METHOD'] == "POST") {
  21.  
  22. if (empty($_POST['voornaam']) || empty($_POST['achternaam']) || empty($_POST['leeftijd'])) {
  23.  
  24. $_SESSION['voornaam'] = $_POST['voornaam'];
  25. $_SESSION['achternaam'] = $_POST['achternaam'];
  26. $_SESSION['leeftijd'] = $_POST['leeftijd'];
  27.  
  28. echo 'Sorry maar u heeft een veld vergeten, klik <a href="javascript:history.back(1)">hier</a> om terug te gaan!<br /><br />';
  29. print_r($_POST);
  30.  
  31. } else {
  32.  
  33. echo 'U heeft alle velden ingevuld!<br /><br />';
  34. print_r($_POST);
  35.  
  36. }
  37.  
  38. } else {
  39. // Tonen van het formulier
  40. ?>
  41.  
  42. <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
  43.  
  44. Voornaam: <input type="text" name="voornaam" id="voornaam" <?= checkSet($_SESSION['voornaam']); ?>/><br />
  45. Achternaam: <input type="text" name="achternaam" id="achternaam" <?= checkSet($_SESSION['achternaam']); ?>/><br />
  46. Leeftijd: <input type="text" name="leeftijd" id="leeftijd" <?= checkSet($_SESSION['leeftijd']); ?>/><br />
  47. <input type="submit" id="submit" name="submit" value="Verzenden" /> <input type="reset" value="Reset" />
  48.  
  49. </form>
  50.  
  51. <?php
  52. }
  53. ?>
Offline ramonlouter - 12/10/2005 16:48 (laatste wijziging 12/10/2005 16:50)
Avatar van ramonlouter Nieuw lid maar hoe zit het als je werkt met 2 pagina's. Dus 1 pagina voor het formulier en de tweede pagina voor alle validatie en het verzenden van het bericht.

gr. Ramon
Offline Rens - 12/10/2005 16:51
Avatar van Rens Gouden medaille

Crew algemeen
Hetzelfde, alleen staat de code voor het ophalen in die 2e pagina en verander je:
  1. <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">

naar:
  1. <form action="naam_pagina.php" method="post">
Offline ramonlouter - 12/10/2005 16:54 (laatste wijziging 12/10/2005 17:04)
Avatar van ramonlouter Nieuw lid dus alles wat voor de else { // Tonen van het formulier staat moet ik in me "action" pagina plaatsen

gr. Ramon

EDIT
ik heb het nu getest en het werkt, moet alleen nog alle variabelen gaan doorvoeren en validatie bijwerken.

bedankt voor alle hulp.


Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s