2013-03-19 4 views
2

Je suis nouveau avec PHP et JavaScript. Je voulais valider le formulaire, et si les champs de saisie du formulaire sont corrects, envoyez-le au script externe php. J'ai essayé quelque chose comme ceci:Validation de formulaire PHP/JavaScript?

<head> 
<script type="text/javascript"> 
    function Validate(){ 
    var x=document.forms["form"]["firstname"].value; 
    var y=document.forms["form"]["lastname"].value; 
    var z=document.forms["form"]["age"].value; 
    if(x==null || x=="") { 
     alert("Input name!"); 
    } else if(y==null || y=="") { 
     alert("Input surname!"); 
    } else if(z==null || z=="") { 
     alert("Input age!"); 
    } else { 
    // IS IT POSSIBLE TO SEND FORM HERE FORM VARIABLES TO PHP SCRIPT? 
    } 
    } 
</script> 
</head> 
<body> 

    <form name="forma" action="validate.php" method="post" onSubmit="return Validate()"> 
    Firstname: <input type="text" name="firstname"> 
    Lastname: <input type="text" name="lastname"> 
    Age: <input type="text" name="age"> 
    <input type="submit"> 
    </form> 
</body> 
</html> 
+0

après votre alerte entrer : 'return false;'. De cette façon, le formulaire ne sera pas soumis. Assurez-vous également de vérifier à nouveau les variables dans votre script php. –

+0

Vous pouvez ignorer ces vérifications nuls –

Répondre

1

Puisque vous ne renvoyez pas faux de votre fonction, le formulaire devrait être soumis quand même. Vous pouvez l'arrêter en soumettant votre fonction validate() return false.

+0

ahaa j'ai oublié d'écrire return false. cela fonctionne bien maintenant, merci beaucoup :) –

+0

Alors, vous allez accepter cette réponse alors? –

1

Votre code semble correct, autre que le fait que vous voulez probablement return false en cas d'échec pour empêcher la forme de soumettre. Lorsque vous ne renvoyez pas false, le formulaire continuera simplement à être envoyé.

Je pense aussi que vous vouliez probablement dire de nommer votre formulaire form non forma

+0

ahaa j'ai oublié d'écrire return false. ça marche bien maintenant, merci beaucoup :) –

1

Vous devez valider le côté serveur d'entrée (php), même si vous l'avez fait côté client (javascript).

Vous faites cela en vérifiant dans $_POST validate.php:
Tout au début de votre script:

if (isset($_POST)) { // form has been sent 

    if (!isset($_POST['firstname']) || strlen($_POST['firstname'])==0) { // no entry 

     $e['firstname']='please enter a firstname!'; // prepare error-msg 
    } 

    if (!isset($e)) { // no error, continue handling the data 

     // write data to database etc. 
    } 
} 

// in your form... 

if (isset($e)) echo "there were errors: ". implode(',',$e); 
+0

je l'ai déjà fait :) tnx –

1

Vous devez mettre ce code:

function Validate(){ 
var x=document.forms["form"]["firstname"].value; 
var y=document.forms["form"]["lastname"].value; 
var z=document.forms["form"]["age"].value; 
if(x==null || x=="") { 
    alert("Input name!"); 
    return false; 
} else if(y==null || y=="") { 
    alert("Input surname!"); 
    return false; 
} else if(z==null || z=="") { 
    alert("Input age!"); 
    return false; 
} else { 
    return true; 
} 
}