Javascript form validation en dan variabelen naar php

  • Onderwerp starter Onderwerp starter Uturn
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Uturn

Gebruiker
Lid geworden
7 apr 2009
Berichten
100
Hoi, ik ben een website aan het maken met daarop verschillende formulieren. Nu wil ik deze controleren met JavaScript voordat ik de waarden doorstuur naar de server (php-file). Wanneer de gebruiker de velden niet goed invult moet 'ie op dezelfde pagina blijven. Maar hoe kan ik php aanroepen vanuit een JavaScript functie? Ik heb begrepen dat dit niet makkelijk/mogelijk is omdat JS clientside werkt, en php serverside.

Ik heb geprobeerd de formuliervalidatie in php te doen, maar dan komt er een blanco pagina, dit wil ik ook niet.

De scripts (voor de leesbaarheid heb ik code weggehaald en hoeft alleen maar de naam te worden ingevuld om de php aan te roepen):

HTML:
<html>
<head>

  <script type="text/javascript" src="....js"></script>
</head>
<body>
  <div id="pagina">
    <div id="headerblok">
    
    </div>
    <div id="hoofdmenu">
      <?php include 'headermenu.php'; ?>
    </div><hr>
    <br>
    <br>
    Remarks:
    <br>
    <form name="rem_form" method="post" action="RemarkHandler.php">
      <div id="feedb">
        Name:<br>
        <input type="text" size="25" name="rem_name"><br>
        <br>
        Comment:<br>
        <textarea name="rem_mess" rows=5 cols=60></textarea><br>
        <br>
        <input type="submit" name="remarks" value="Send comment" onClick="RemarkHandler()"><br>
      </div>
    </form>
  </div>
</body>
</html>

En de JavaScript:

PHP:
function RemarkHandler() {
  var NameError = false;
  var ErrorStr = "";
  with (document.rem_form) {
    var ComName = rem_name.value;
    if (ComName == null || ComName == "") {
      NameError = true;
      ErrorStr += "Please fill in your name! ";
    }
  if (NameError) {
    alert(ErrorStr);
  }
  else {
    //     hier php aanroepen
  }
}

Iemand een goede tip voor het script of hoe ik het anders aan kan pakken?

Heel erg bedankt alvast!
 
Ik het het antwoord op mijn eigen vraag al gevonden:
De JS functie laat je false of true terugzenden naar gelang de uitkomst van de validatie (return false/true).
In de <form> tag in het html formulier zet je onsubmit="return //JS functie//", bij de <input> tag laat je de onClick event weg.
Het formulier wordt alleen verzonden naar de php file indien JS functie = true. Werkt prima!:d

Uren zoeken, nergens deze oplossing gezien, alleen doomverhalen dat JS clientside werkt en dus niets kan verzenden naar php. In een klein hoekje, een intermezzo, van een tutorial vond ik deze oplossing. Nog bijna overheen gekeken ook.

Bedankt grumbkow, jouw antwoord werd geplaatst terwijl ik dit aan het typen was...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan