Enchainement formulaire/js/php

Ttben -  
 Ttben -
Bonjour à tous !

J'ai parcouru un peu partout ce site, mais je n'ai pas pu trouver la réponse à ma question.
Je suis plutot novice en programmation web et j'ai du mal à réaliser un "enchainement".

Voici mon problème :

- j'ai écris un formulaire HTML avec nom, prénom, mail.
- un fichier javascript qui vérifie ces champs quand l'utilisateur clic sur un bouton "valider".
- un fichier php qui vérifie si l'@mail n'est pas déja présente dans la base de données (si l'utilisateur n'es pas déjà inscrit).

Pour résumé :

HTML => valider => javascript => si aucune probleme redirection vers la page '.php'.

Voici des extraits de code :

HTML :
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

 <meta content="text/html;charset=utf-8" http-equiv="content-type" /> 

 <link rel="stylesheet" type="text/css" href="inscription.css">  

 <script  type="text/javascript" src="check_inscription.js"></script> 

</head> 


<body> 

 <h1 id="titre"> Inscription </h1>  

[.......] 

<input type="button" value="Valider" onClick="Check()"/> 

[.......] 


JAVASCRIPT
[Verification des champs puis ... ] 

      if (verif.exec(email) == null) 
   { 
    alert("L'email saisi n'est pas valide"); 
    return false; 
   } 
   else 
   { 
    window.location = "check_inscription.php"; 
    return true; 
   } 



PHP
[Selection de la base de données et .. ] 

 //le champ contenant l'adresse mail s'appelle 'mail' 

 $mail = $_POST['mail']; 

 $nom = $_POST['nom']; 

 $prenom = $_POST['prenom']; 

5 réponses

  1. maka54 Messages postés 721 Statut Membre 80
     
    Laisse-moi deviner, tu ne reçois pas les valeurs de ton formulaire ???

    window.location = "check_inscription.php"; 


    cette ligne n'est pas correcte

    ce serait plutot :

    document.forms['name_du_formulaire'].submit();
    0
  2. Ttben
     
    Mon problème est que, une fois que j'ai rempli mon formulaire, que les tests en javascript se sont révélés corrects ; je suis censé être redirigé vers ma page php ; or, quand j'arrive sur la page php en question, je vois le fichier tel quel, je vois mon code source.
    Je suppose donc que la redirection est (très) mal faite !

    maka54 : j'ai essayé ce que tu m'as suggéré, le résultat est le même.

    J'avais réalisé le formulaire html et le fichier php, cela fonctionnait très bien (lien direct - formulaire/php) mais dès que j'ai voulu insérer des tests en js (je ne les connais que dans ce langage) ;je ne sais plus assurer la redirection js/php

    Comment faire si'il vous plait ?

    Cordialement,
    0
  3. maka54 Messages postés 721 Statut Membre 80
     
    on ne fais pas une redirection mais on envoie un formulaire

    action = "" dans la balise form
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Ttben
     
    Voici mon formulaire :
    <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN"
    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transistional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    
    	<meta content="text/html;charset=utf-8" http-equiv="content-type" />
    
    	<link rel="stylesheet" type="text/css" href="inscription.css"> 
    
    	<script  type="text/javascript" src="check_inscription.js"></script>
    
    
    
    </head>
    
    
    
    <body>
    
    	<h1 id="titre"> Inscription </h1>
    
    
    
    	<div class="main">
    
    <form name="formulaire" action="check_inscription.php" method="post">
    
    <input type="text" name="prenom" value="Prénom" id="prenom" onClick="ChangePre()" onBlur="deChangePre()"/>
    
    <input type="text" name="nom" value="Nom" id="nom" onClick="ChangeNom()" onBlur="deChangeNom()" />
    
     <input type="text" name="mail" value="Mail"  id="mail" onClick="ChangeMail()" onBlur="deChangeMail()"/>
    
    <input type="text" name="telephone" value="Téléphone"  id="tel"  onClick="ChangeTel()" onBlur="deChangeTel()" "/>
    
    <input type="submit" value="Valider" onClick="Check()"/></td>
    
    </form>
    
    	</div>
    
    
    </body>
    
    </html>
    


    Voici une partie javascript qui effectue les tests :
    function Check()
    {
    	bool=0;
    	str = "";
    
    	if(document.getElementById("prenom").value=="Prénom")
    	{
    		str+="" + "Le champ prénom est requis \n";
    		bool=1;
    	}		
    
    	if(document.getElementById("nom").value=="Nom")
    	{
    		str+="" +"Le champ nom est requis \n";
    		bool=1;
    	}
    
    	if(document.getElementById("mail").value=="Mail")
    	{
    		str+="" +"Le champ mail est requis \n";
    		bool=1;
    	}
    
    	if(bool==1)
    	{
    		alert(str);
    		return false;
    	}
    
    	var email = document.formulaire.mail.value;
    	var verif = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_-]{2,}[.][a-zA-Z]{2,3}$/
    
    	if (verif.exec(email) == null)
    	{
    		alert("L'email saisi n'est pas valide");
    		return false;
    	}
    	else
    	{
    	       document.formulaire.submit();
    		return true;
    	}
    


    Il ne doit y avoir envoi du formulaire que si celui ci est sans erreur ! (evident!)
    Donc il faut envoyer ce formulaire depuis le fichier js qui lui effectue les tests je me trompe ?

    Merci pour vos réponses.
    0