Enchainement formulaire/js/php

Fermé
Ttben - Modifié par Ttben le 9/04/2012 à 13:31
 Ttben - 9 avril 2012 à 15:12
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

Bonjour,
Et ta question est...?
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
9 avril 2012 à 14:45
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
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
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
9 avril 2012 à 15:04
on ne fais pas une redirection mais on envoie un formulaire

action = "" dans la balise form
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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