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 03/08/2007, 14h57   #1
Invité de passage
 
Inscription : juin 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 16
Points : 0
Points : 0
Par défaut Contrôle des champs de mon formulaire

bonjour ,
je travaille sur le formulaire commande actuellement je fais le controle des saisies .
problémes rencontrés le test des champs s'exécute automatique avant méme que je clique sur le bouton valider
ça s'explique du fait que lorsque je choisis une categorie de produit la page est rechargées (correspondant ainsi au bouton valider)
pour afficher automatiquementles produits présent dans la base ceci provoque le test des champs du formulaire
quelle est la solution pour rémédier à ça ?
kebson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h14   #2
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 39
Points : 39
Points : 39
Envoyer un message via ICQ à Dudule-le-poisson
Tu peux ajouter un champ caché contenant la valeur originelle de ta catégorie :
Code :
1
2
3
4
<?php
$categorie_prec = /* l'id de la catégorie précédente ou un code de ton choix (ex : -1) si aucun catégorie n'avait encore été choisie */
?>
<input type="hidden" name="categorie_prec" value="<?=$categorie_prec?>">
Ensuite, lors de l'analyse de ton formulaire, tu testes la valeur de ce champ :
  • s'il vaut -1 (par exemple), c'est que l'utilisateur choisit la catégorie pour la première fois : il ne faut pas valider les champs
  • s'il a une valeur différente de l'id de la catégorie postée, c'est que l'utilisateur a changé de catégorie : il ne faut pas valider les champs
  • s'il est égal à l'id de la catégorie postée, alors c'est que l'utilisateur a posté une seconde fois le formulaire sans changer la catégorie : il faut valider les champs
Dudule-le-poisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h34   #3
Invité de passage
 
Inscription : juin 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 16
Points : 0
Points : 0
merci de votre réponse mais j'ai pas bien saisi ce que vous dites
moi catégorie est un liste deroulante si on choisit une catégorie elle rafraichit la deuxiéme liste qui contient les produits correspondants à cette catégorie
c'est cette rafraichissement qui entraine automatiquement l'exécution des tests des champs du formulaire .

merci de m'expliquer clairement
kebson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 17h22   #4
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 39
Points : 39
Points : 39
Envoyer un message via ICQ à Dudule-le-poisson
J'avais bien compris ta situation. Ton formulaire est donc soumis plusieurs fois : à chaque fois qu'on change la valeur de la liste des catégories et quand on valide le formulaire lui-même. Le contenu de mon post précédent devrait t'aider à distinguer dans quel cas tu te situes : envoi du formulaire à cause de la liste ou envoi du formulaire via le bouton valider. Avec ce champ supplémentaire, tu dois pouvoir poser des conditions et selon ces conditions, exécuter soit le code pour valider les champs, soit le code pour rafraîchir la liste des produits.
Si vraiment tu n'y arrives pas, poste-nous ton code (entre balises [code]) et on verra ce qu'on peut faire pour toi.
Dudule-le-poisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h53   #5
Invité de passage
 
Inscription : juin 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 16
Points : 0
Points : 0
Par défaut probleme d'affichage des choix de l'utilisateur

merci pour ta réponse j'ai bien compris votre méthode et je la trouve trés ingenieuse .j'ai aussi une autre methode en testant le bouton valider et ça marche bien maintenant
le petit probléme c'est qu' en rechargeant la page les choix antérieurs sont perdus alors que je voudrais que ça s'affiche les choix de l'utilisateur jusqu'a ce qu'il clique sur le bouton valider

merci pour Tout
kebson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 12h38   #6
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 39
Points : 39
Points : 39
Envoyer un message via ICQ à Dudule-le-poisson
(Désolé pour le délai de réponse.)


Lorsqu'on recharge une page avec un formulaire fraîchement posté, les navigateurs demandent à l'utilisateur s'il veut renvoyer les données POST. En général, il répond oui et dans ce cas tu peux récupérer les valeurs POST classiquement, dans $_POST.
Je pense que la seule chose qui te manque c'est de configurer tes champs pour qu'ils raffichent ces données.
Prenons l'exemple d'un champ de texte qui peut rafficher sa valeur après avoir été posté :
Code :
1
2
3
4
    <form method="post" action=<?=$_SERVER['PHP_SELF']?>>
        <input type="text" name="mon_champ" value="<?=@$_POST['mon_champ']?>">
        <input type="submit" name="submit" value="Valider">
    </form>
Variante : la même chose avec une valeur par défaut :
Code :
1
2
3
4
    <form method="post" action=<?=$_SERVER['PHP_SELF']?>>
        <input type="text" name="mon_champ" value="<?=isset($_POST['mon_champ']) ? $_POST['mon_champ'] : 'valeur par defaut'?>">
        <input type="submit" name="submit" value="Valider">
    </form>
Dernier exemple : avec une liste déroulante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
    <form method="post" action=<?=$_SERVER['PHP_SELF']?>>
        <select name="liste">
<?php
    foreach($propositions as $proposition) {
        $option_selectionnee = (isset($_POST['list']) && $_POST['list'] == $proposition['valeur']);
        echo '<option value="'.$proposition['valeur'].'"';
        if ($option_selectionnee) echo ' selected';
        echo '>'.$proposition['texte'].'</option>';
    }
?>
        </select>
        <input type="submit" name="submit" value="Valider">
    </form>
Dudule-le-poisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h27.


 
 
 
 
Partenaires

Hébergement Web