Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 23h12   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut ne pas réafficher le formulaire si les valeurs entrées sont bonnes

Bonsoir,

je fais un formulaire html avec l'action dans la même page ( action=""), mais je ne voudrais pas que le formulaire soit réaffiché si l'action dit que l'entrée de l'utilisateur est OK. Voilà ce que j'ai fait pour ça, mais le formulaire est quand même réaffiché :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php...
if (!isset($form)) {
?><form method="post"..action="">...</form>
<?php } 
if (...)
    echo ('tous les champs marqu&eacute;s par * sont obligatoires<br>');
 
else {
$form=0;
...
echo '<b>annonce saisie</b><br>';
}?>
comment éviter que le formulaire soit réaffiché si tout va bien ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 00h55   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
vérifie les données de $_POST

ps :
- pourquoi &eacute; ?
- utilise la syntaxe alternative
- <b> ...
- <br> ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 10h24   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
pourquoi &eacute; ?
Par habitude (avant, je faisais toujours comme ça) et de plus pour faire du html, j'utilise souvent un éditeur html wysiwyg qui traduit les caractères spéciaux en unicode.
Citation:
- <br> ...
d'accord, pour être valide W3C, <br/> serait mieux, mais comme ça marche...
Citation:
- <b> ...
C'est quoi, là, le problème ?



Citation:
vérifie les données de $_POST
L'objet de mon post ; en fait, je ne voudrais réafficher le formulaire que si tous les champs obligatoires ne sont pas remplis, et je teste ça dans l'action
Code :
1
2
3
 
if (($cat=='')||($text=='')||($nom=='')||($prenom=='')||($pseudo==''))
    echo ('tous les champs marqu&eacute;s par * sont obligatoires<br>');
donc du coup, j'ai créé un champ "hidden" "form" : <input type="hidden" name="form" value="1"> et je le remets à 0 dans l'action s'il ne faut pas réafficher le formulaire : mais visiblement, ça ne marche pas ; la solution est-elle juste de répéter le test (donc si ces champs existent mais que l'un d'eux est vide, on réaffiche le formulaire) ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h10   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
met ton formulaire dans un autre fichier ca sert a rien de tout mettre dans le meme sépare ton code
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h37   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 661
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 661
Points : 5 388
Points : 5 388
Et si tu tiens absolument à tout faire dans le même script, il faut faire la vérification avant l'affichage
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$afficherFormulaire = true;
if (/*condition formulaire reçu*/){
if (/* condition formulaire incorrect*/)
    echo ('tous les champs marqu&eacute;s par * sont obligatoires<br>');
 
else {
$afficherFormulaire = false;
...
echo '<b>annonce saisie</b><br>';
}
//affichage du formulaire
if ($afficherFormulaire) {
?><form method="post"..action="">...</form><?php
}
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/09/2011, 16h55   #6
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
Et si tu tiens absolument à tout faire dans le même script
Ce n'est pas que j'y tienne particulièrement, mais le code étant déjà fait comme ça, c'est plus simple. Merci.
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h43.


 
 
 
 
Partenaires

Hébergement Web