probleempje met php en javascript

Status
Niet open voor verdere reacties.

jeroenb

Gebruiker
Lid geworden
7 mei 2007
Berichten
5
PHP:
<?php

if(!(isset($_SESSION['gebruiker_id']))){
header('Location: index.php');
}
?>

<script type='text/javascript'>

function formValidator(){
// Make quick references to our fields
var Titel = document.getElementById('Titel');
var Bericht = document.getElementById('Bericht');
var Uur = document.getElementById('Uur');


// Check each input in the order that it appears in the form!
if(isAlphabet(Titel, "Gelieve enkel letters in uw titel te zetten")){
if(isAlphanumeric(Bericht, "letters en cyfers enkels in het bericht en het mag niet leeg zijn")){
if(isEmpty(Uur, "gelieve een goed uur in te vullen")){
return true;
}
}
}


return false;

}

function isEmpty(elem, helperMsg){
if(elem.value.length == 0){
alert(helperMsg);
elem.focus(); // set the focus to this input
return true;
}
return false;
}

function isNumeric(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function isAlphabet(elem, helperMsg){
var alphaExp = /^[a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function isAlphanumeric(elem, helperMsg){
var alphaExp = /^[0-9a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

</script>

<form action="toevoegen_afspraakvandaag.php" method="POST" onsubmit='return formValidator()' >
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr><td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3" bgcolor="#E6E6E6"><strong>Maak Nieuwe Afspraak</strong></td>
</tr>
<tr>
<td width="14%"><strong>Titel</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="topic" id='Titel' type="text" maxlength="50" size="50" /></td>
</tr>
<tr>
<td valign="top"><strong>Bericht</strong></td>
<td valign="top">:</td>
<td><textarea name="bericht" id ='Bericht' cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><strong>Uur</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="uur" id ='Uur' type="text" maxlength="50" size="50" /></td>
</tr>
<tr>
<td></td><td></td>
<td>
<input type="submit" name="toevoegen" value="Toevoegen"/><input type="reset" value="Wis velden" /></td>
</tr>
</table>
</td>
</tr>
</table>
</form>


nu volgt mijn probleem ik probeer aan de hand van javascript te kijken of alle velden wel goed zijn ingevuld. eens dit goed is ingevult zou ik moeten doorverwezen worden naar toevoegen_afspraak.php waar hij dan de gegevens in mijn databank stopt.
maar hij wil gelijk niet toevoegen. iemand die me vast met dit eenvoudige probleem kan voorthelpen?
 
Laatst bewerkt door een moderator:
Waarom controleer je niet gewoon met PHP de gegevens in toevoegen_afspraak.php?

Je kunt dan een variabele mee laten lopen die het aantal fouten telt. Wanneer er geen fouten zijn dan voegt hij het toe aan de database...

Simpele uitleg:
PHP:
errors = 0;
errormsg = array();
if(empty($_POST['naam']) || empty($_POST['email']))
{
  $errormsg[] = "Er is geen naam of emailadres ingevuld.";
  $errors++;
}
if(!is_numeric($_POST['huisnummer']))
{
  $errormsg[] = "Het huisnummer moet uit een getal bestaan.";
  $errors++;
}
//Enzovoort, tot je al je controles hebt uitgevoerd.

if($errors == 0)
{
  //Gegevens in database zetten, dus query opbouwen
}
else
{
  foreach($errormsg AS $message)
  {
    echo $message .'<br />';
  }
}
 
omdat onze prof wil dat we eerst valideren aan de hand van javascript zodat er ook wat client-side stuff bij zit
 
Leuke professor :(

Veel verstand van JS heb ik niet maar ik denk dat je de functie formValidator() niet aan bij de OnSubmit van het formulier moet hebben maar bij de knop Toevoegen...

Dus
HTML:
<input type="submit" name="toevoegen" value="Toevoegen" OnClick='return formValidator()' />

Werken de functies uberhaupt wel?
 
Leuke professor :(

Veel verstand van JS heb ik niet maar ik denk dat je de functie formValidator() niet aan bij de OnSubmit van het formulier moet hebben maar bij de knop Toevoegen...
Ik zou m juist wel in de onsubmit zetten. Dan hoef je ook niet met dat type = submit te klooien of een extra onlick (wat misschien in sommige browsers weer niet wordt uitgevoerd, omdat de onclick ook het formulier submit). Hier komt bij kijken dat je het drukken op de enter toets niet hebt afgevangen (bijv bij een invoerveld en dan op enter drukken).

Overigens heb ik je probleempje al gevonden. In de functie formValidator() controleer je op if(isEmpty(Uur, "...")). Deze geeft true terug als het veld empty is. Maak er eens if (!isEmpty(Uur, "...")) van? ;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan