Vraag & Antwoord

Webprogrammeren & scripting

[Javascript] Validatie

2 antwoorden
  • Wat in onderstaande validatie code (javascript) zorgt ervoor dat gegevens niet verwerkt worden zodra velden niet zijn ingevuld? Als ik namelijk een nieuwe optie op de verzend knop wil toevoegen (go to URL) doe ik bij de if(errors) statement MM_GoToURL = false; dan gaat ie idd niet naar de URL en geeft ie nog steeds errors bij niet ingevulde velden maar vervolgens krijg ik wel de gegevens binnen/deze worden wel verwerkt - dit heb ik alleen als GoToURL aanstaat! Dit moet immers niet. Vandaar is mijn vraag aan jullie: wat zorgt ervoor in mijn code dat gegevens niet worden verwerkt als er velden missen, zodat ik die ff op false ofzo kan zetten. Dan kan ik in ieder geval weer ff vooruit met brainstormen, kom er zelf niet achter :evil: Javascript code [code:1:78ede16edb] <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+' is geen geldig e-mailadres.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' is geen geldig telefoonnummer.\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+' is geen geldig telefoonnummer.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is verplicht.\n'; } } if (errors) { alert('Registratie kan niet worden voltooid:\n'+errors); } else { alert('Bedankt voor het aanmelden!'); } document.MM_returnValue = (errors == ''); } } //--> </script><style type="text/css"> [/code:1:78ede16edb] Totale code (hele document) [code:1:78ede16edb]<?php class maxGuestbook{ var $messageDir = '1975'; var $dateFormat = 'Y-m-d g:i:s A'; var $itemsPerPage = 5; var $messageList; function processGuestbook(){ if (isset($_POST['submit'])) { $this->insertMessage(); } $page = isset($_GET['page']) ? $_GET['page'] : 1; $this->displayGuestbook($page); } function getMessageList(){ $this->messageList = array(); // Open the actual directory if ($handle = @opendir($this->messageDir)) { // Read all file from the actual directory while ($file = readdir($handle)) { if (!is_dir($file)) { $this->messageList[] = $file; } } } rsort($this->messageList); return $this->messageList; } function displayGuestbook($page=1){ $list = $this->getMessageList(); //echo "<center><a href='add.php'>Leave a message</a></center>"; echo "<table class='newsList'>"; //Get start point and end point $startItem = ($page-1)*$this->itemsPerPage; if (($startItem + $this->itemsPerPage) > sizeof($list)) $endItem = sizeof($list); else $endItem = $startItem + $this->itemsPerPage; for ($i=$startItem;$i<$endItem;$i++){ //foreach ($list as $value) { $value = $list[$i]; $data = file($this->messageDir.DIRECTORY_SEPARATOR.$value); $naam = trim($data[0]); $achternaam = trim($data[1]); $woonplaats2 = trim($data[5]); $email = trim($data[6]); unset ($data['0']); unset ($data['1']); unset ($data['5']); unset ($data['6']); $content = ""; foreach ($data as $value) { $content .= $value; } echo "<tr><td colspan='2'><strong>Naam:</strong> $naam $achternaam <strong>| Woonplaats destijds:</strong> $woonplaats2 <strong> | <a href=\"mailto:$email\">mail $naam!</a><br/></td></tr></strong>"; } echo "</table>"; if (sizeof($list) == 0){ echo "<center><p>Nog geen aanmeldingen uit het examenjaar 1975!</p><p></p></center>"; } // Create pagination if (sizeof($list) > $this->itemsPerPage){ echo "<div id=\"navigation\">"; if ($startItem == 0) { if ($endItem < sizeof($list)){ echo "<div id=\"nright\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >Volgende »</a></div>"; } else { // Nothing to display } } else { if ($endItem < sizeof($list)){ echo "<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >« Vorige |</a><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >| Volgende »</a></div>"; } else { echo "<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >« Vorige</a></div>"; } } echo "</div><br/>"; } echo "<hr />"; $this->displayAddForm(); } function displayAddForm(){ ?> <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+' is geen geldig e-mailadres.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' is geen geldig telefoonnummer.\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+' is geen geldig telefoonnummer.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is verplicht.\n'; } } if (errors) { alert('Registratie kan niet worden voltooid:\n'+errors); } else { alert('Bedankt voor het aanmelden!'); } document.MM_returnValue = (errors == ''); } } //--> </script><style type="text/css"> <!-- a:link { text-decoration: none; } a:visited { text-decoration: none; } a:hover { text-decoration: none; } a:active { text-decoration: none; } --> </style> <form class="iform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <div align="left"> <p>Aanmelden? Dat kan! Vul in uw gegevens en uw naam komt in bovenstaande lijst van aanwezigen!<br/> </p> <table width="658" border="0"> <tr> <td width="90">Voornaam</td> <td width="194"><input type="text" name="naam" size="23" id="naam"/></td> <td width="176">Woonplaats heden</td> <td width="180"><input type="text" name="woonplaats1" size="23" id="woonplaats1"/></td> </tr> <tr> <td>Achternaam</td> <td><input type="text" name="achternaam" size="23" id="achternaam"/></td> <td>Woonplaats destijds</td> <td><input type="text" name="woonplaats2" size="23" id="woonplaats2"/></td> </tr> <tr> <td>Adres</td> <td><input type="text" name="adres" size="23" id="adres"/></td> <td>Email</td> <td><input type="text" name="email" size="23" id="email"/></td> </tr> <tr> <td>Telefoon</td> <td><input type="text" name="telefoon" size="23" id="telefoon"/></td> <td>Examenjaar</td> <td><label> <select name="examenjaar" id="examenjaar"> <option>1975</option> </select> </label></td> </tr> </table> <p align="left"><br/> <input name="submit" type="submit" onclick="MM_validateForm('naam','','R','woonplaats1','','R','achternaam','','R','woonplaats2','','R','adres','','R','email','','RisEmail','telefoon','','RisNum');return document.MM_returnValue" value="Verzenden" /> </p> </div> </form> <?php } function insertMessage(){ $naam = isset($_POST['naam']) ? $_POST['naam'] : ''; $achternaam = isset($_POST['achternaam']) ? $_POST['achternaam'] : ''; $adres = isset($_POST['adres']) ? $_POST['adres'] : ''; $telefoon = isset($_POST['telefoon']) ? $_POST['telefoon'] : ''; $woonplaats1 = isset($_POST['woonplaats1']) ? $_POST['woonplaats1'] : ''; $woonplaats2 = isset($_POST['woonplaats2']) ? $_POST['woonplaats2'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : ''; $examenjaar = isset($_POST['examenjaar']) ? $_POST['examenjaar'] : ''; if (trim($naam) == '') $naam = ''; $filename = date('Y-m-d-H-i-s'); if (!file_exists($this->messageDir)){ mkdir($this->messageDir); } $f = fopen($this->messageDir.DIRECTORY_SEPARATOR.$filename.".txt","w+"); fwrite($f,$naam."\n"); fwrite($f,$achternaam."\n"); fwrite($f,$adres."\n"); fwrite($f,$telefoon."\n"); fwrite($f,$woonplaats1."\n"); fwrite($f,$woonplaats2."\n"); fwrite($f,$email."\n"); fwrite($f,$examenjaar."\n"); fclose($f); } } ?>[/code:1:78ede16edb]
  • Het gaat om twee stukjes code: [code:1:9682b13568]document.MM_returnValue = (errors == '');[/code:1:9682b13568] Dit zet document.MM_returnValue op de waarde die (errors == '') oplevert (true als errors leeg is, anders false). [code:1:9682b13568]<input name="submit" type="submit" onclick="MM_validateForm('naam','','R','woonplaats1','','R','achternaam','','R','woonplaats2','','R','adres','','R','email','','RisEmail','telefoon','','RisNum');return document.MM_returnValue" value="Verzenden" />[/code:1:9682b13568] Na een klik op "Verzenden" wordt het formulier gevalideerd, daarna wordt de waarde van document.MM_returnValue "gereturned". Als deze false is wordt het formulier niet verstuurd. Als deze true is wel.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.