Page 1 sur 1

Problème de formulaire

Posté : 30 juil. 2007, 19:27
par L0007
Bonjour,

J'ai un problème de formulaire. J'ai essayé un tuto ici pour savoir comment rediriger un formulaire et récupérer les données si les champs ne sont pas tous remplis.

Je n'arrive pas à faire fonctionner le formulaire. Je me rends compte que ce tuto n'est pas très précis. Je dois remplacer les balise

Code : Tout sélectionner

<? >
par

Code : Tout sélectionner

<?php >
.

Bizarre, la première fois que j'avais essayé, ça allait plus au moins sauf la fin. Alors j'ai recommencé et je bloque déjà à une étape antérieure.

J'affiche un message si les champs sont vide avec

Code : Tout sélectionner

<?php if (($Espion == "JaiToutVu") && (strlen($Nom) == 0)) echo "PAS DE NOM VIDE"; ?>
mais ça ne fonctionne pas.

Voici mon code, pouvez-vous m'aider?
Merci

Code : Tout sélectionner

<form name="MonFormulaire" method="post" action="saisiedonnee.php"> Votre nom : <?php if (($Espion == "JaiToutVu") && (strlen($Nom) == 0)) echo "PAS DE NOM VIDE"; ?> <input type="text" name="Nom"> <br> <!-----------------------------------> Votre prénom : <?php if (strlen($Prenom) == 0) echo "PAS DE PRENOM VIDE"; ?> <input type="text" name="Prenom"> <br> <input type="hidden" name="Espion" value="JaiToutVu"> <input type="submit" name="Submit" value="Envoyer"> </form>

Posté : 30 juil. 2007, 19:51
par d0m
Ton formulaire est en méthode POST, les élements de ton formulaire sont donc stockés dans la variable $_POST

Par exemple pour accéder au champ espion, il faut utiliser $_POST['espion'].

Posté : 30 juil. 2007, 20:39
par L0007
Génial ça fonctionne!

Juste une dernière question à propos de la redirection de ce formulaire.
D'après le tuto, il faut metter les lignes:

Code : Tout sélectionner

echo "<meta http-equiv='refresh' content='0; url=resultat.php?Nom=$Nom&Prenom=$Prenom'>";
J'ai donc mis

Code : Tout sélectionner

echo "<meta http-equiv='refresh' content='0; url=resultat.php?Nom=$_POST['Nom']&Prenom=$_POST['Prenom']'>";
Apparement j'ai encore un problème de ce côté là.
J'ai remplacé les champs $Nom et $Prenom par $_POST['Nom'] et $_POST['Prenom'].
Comme elles sont dans un script, elle devraient être remplacées par leur valeur.
Mais apparemment, je n'arrive pas à construire mon url correctement.

Code : Tout sélectionner

<html <head> <?php if ((strlen($_POST['Nom']) > 0) && (strlen($_POST['Prenom']) > 0)) echo "<meta http-equiv='refresh' content='0; url=resultat.php?Nom=$_POST['Nom']&Prenom=$_POST['Prenom']'>"; ?> <title>Saisie des donnéees</title> </head> <body> <form name="MonFormulaire" method="post" action="saisiedonnee.php"> Votre nom : <?php if (($_POST['Espion'] == "JaiToutVu") && (strlen($_POST['Nom']) == 0)) echo "PAS DE NOM VIDE"; ?> <input type="text" name="Nom" value=<?php echo ($_POST['Nom'])?>> <br> <!-----------------------------------> Votre prénom : <?php if (($_POST['Espion'] == "JaiToutVu") && (strlen($_POST['Prenom']) == 0)) echo "PAS DE PRENOM VIDE"; ?> <input type="text" name="Prenom" value= <?php echo ($_POST['Prenom'])?>> <br> <input type="hidden" name="Espion" value="JaiToutVu"> <input type="submit" name="Submit" value="Envoyer"> </form> </body> </html>

Posté : 30 juil. 2007, 20:54
par Truc
Tu devrais laisser le tuto de coté (il semble trop ancien)
Regarde plutôt celui-ci plus complet

Posté : 30 juil. 2007, 22:03
par L0007
Merci pour l'adresse.

Le tuto m'a bien aidé. J'ai adapté le code et ça fonctionne.

J'aurais juste une dernière question concernant le code du tuto que tu m'as envoyé:

Dans son code, il y a un bouton "Recommencer".
D'après ce que j'ai lu, il n'est pas nécessaire dans le code.

Je sais que ce code peut-être adapté mais c'est juste pour être sûr qu'il n'y aucun traitement sur ce bouton et que j'ai bien tout compris.

Merci encore de votre aide :D

Posté : 30 juil. 2007, 22:07
par Truc
Il s'agit d'un bouton "reset" qui place les champs dans le même état que lors du chargement de la page.
Il n'est donc pas nécessaire.

Posté : 30 juil. 2007, 22:20
par L0007
merci beaucoup

Re: Problème de formulaire

Posté : 26 oct. 2011, 20:03
par repondre
<html>
<head>
<?
if ((strlen($Nom) > 0) && (strlen($Prenom) > 0))
echo "<meta http-equiv='refresh' content='0; url=resultat.php?Nom=$Nom&Prenom=$Prenom'>";
?>
<title>Saisie des donnéees</title>
</head>

<body>
<form name="MonFormulaire" method="post" action="saisiedonnee.php">
<!------------------------------------------------>
Votre nom :
<?
if (($Espion == "JaiToutVu") && (strlen($Nom) == 0))
echo "PAS DE NOM VIDE";
?>
<input type="text" name="Nom" value=<? echo $Nom;?>>
<br>
<!------------------------------------------------->
Votre prénom :
<?
if (($Espion == "JaiToutVu") && (strlen($Prenom) == 0))
echo "PAS DE PRENOM VIDE";
?>
<input type="text" name="Prenom" value=<? echo $Prenom;?>>
<br>
<!------------------------------------------------->
<input type="hidden" name="Espion" value="JaiToutVu">
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>



Remplassere : <form name="MonFormulaire" method="post" action="saisiedonnee.php">

par <form name="MonFormulaire " method="get" action="resultat.php?Nom=$Nom&Prenom=$Prenom">

Nb;resultat.php votre redirection du formualire pour afficher le nom et le prenom

$_GET['Nom']
$_GET['Prenom']