IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Le bouton reset ne vide pas les champs de mon formulaire


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut Le bouton reset ne vide pas les champs de mon formulaire
    Bonjour,
    mon problème est celui indiqué dans le titre. J'ai simplifié le formulaire en n'y laissant un seul bouton radio mais le problème reste (la case cochée reste cochée après appui sur bouton reset). Merci de l'aide :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <h1>Diagnostic immobilier</h1>
    <form method="post" action="">
     
                <legend><span style="color: red;">*</span>type du logement :</legend>
                <div>
                    <input type="radio" id="maison" name="m_a" value="maison" <?php if((isset($_POST['m_a']))&&(($_POST['m_a'])=='maison')){
                        echo 'checked="checked"';}?> />
                    <label for="maison">maison</label>
                </div>
     
                <div>
                    <input type="radio" id="appartement" name="m_a" value="appartement" <?php if((isset($_POST['m_a']))&&(($_POST['m_a'])=='appartement')){
                        echo 'checked="checked"';}?>/>
                    <label for="appartement">appartement</label>
                </div><br/>
     
                <input type="submit" name="calc_prix" value="Envoyer">
                <input type="reset" name="reset" value="reset"/>
     
            </form><br/>
     
    <?php
    if (isset($_POST['reset'])) {
        unset($_POST);
    }
    if (isset($_POST['calc_prix'])) {
        $price = ((isset($_POST['m_a']))
            && ($_POST['m_a'] == "maison")) ? 110 : 95;
     
        echo "Le prix est ".$price."<br/>";
    }
    ?>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Le bouton reset ne décoche pas, il remet dans l'état initial du formulaire.

    Si initialement la case était cochée, alors elle le restera.

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    OK
    ce que je souhaite, c'est vider tous les champs et décocher les boutons radio et checkbox. Peut-on faire cela et comment ?

  4. #4
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 791
    Points : 3 058
    Points
    3 058
    Par défaut
    Reprends ton code php, tu forces que le champ soit coché si la condition est remplie.

    Si reset ne doit pas réinitialiser (et donc recocher la case puisque c'est l'état initial de ton formulaire n'est-ce pas), un petit bout de javascript devrait faire l'affaire.

    (j'ai l'impression que tu avais déjà posté une telle question il y a quelques mois...)

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    (j'ai l'impression que tu avais déjà posté une telle question il y a quelques mois...)
    C'est possible, mais ayant une mémoire lamentable (au point que si tu me demandes ce que j'ai fait y a 10 secondes, je suis incapable de répondre (le plus souvent), ça s'explique...)

    Je vais tenter un bout de javascript et je reviens.

  6. #6
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 791
    Points : 3 058
    Points
    3 058
    Par défaut
    Fonction rechercher sur le forum : https://www.developpez.net/forums/d2...ps-formulaire/

    (ben dis donc, pourquoi cela m'était-il resté en mémoire ?)

  7. #7
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 896
    Points : 6 655
    Points
    6 655
    Par défaut
    Vider les champs textes, décocher les checkboxs OK. Par contre je trouve curieux de vouloir "décocher" tous les boutons de radio: un ensemble de boutons de radio est censé représenter un choix d'options mutuellement exclusives donc il devrait toujours y avoir une option choisie par défaut et donc un bouton de radio "coché" par défaut (l'état initial du formulaire) et ce contrairement à un select qui lui permet plus de marge (choix unique, choix multiple, pas de choix), non?

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 438
    Points : 4 936
    Points
    4 936
    Par défaut
    Bonjour,

    Vous pouvez aussi utiliser un <a class="reset" href="<?=$_SERVER['REQUEST_URI'];?>"> et le styler en CSS pour avoir l'apparence d'un bouton et utiliser l'attribut href redirigeant vers la même page.

    Sinon, la réinitialisation automatique est le choix le plus propre, parce qu'il y'a un autre problème, si vous réactualisez la page après avoir soumettre le formulaire, le navigateur vous force de soit renvoyer les données encore une fois ou bien annuler.

    Pour éviter ceci il faut que la validation du formulaire passe par 2 étapes, la première envoie les données depuis la page du formulaire vers une page de traitement, et cette dérnière traite les choses et retourne les données traitées vers la page du formulaire, la page de traitement doit gérer par exemple un message de confirmation "confirmMsg" et d'autres variables comme "formSubmitted" qui indique que le formulaire a été soumis, et "errors" pour gérer les erreurs, puis utilisez ces variables dans les conditions permettant de cocher/décocher les éléments en question.

    J'ai trouvé aussi une réponse qui me parrait magique sur StackOverflow qui parle d'un script JS <script>history.pushState({}, "", "")</script> pour empêcher le navigateur de renvoyer les données soumises lorsqu'on actualise la page.

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Vider les champs textes, décocher les checkboxs OK. Par contre je trouve curieux de vouloir "décocher" tous les boutons de radio: un ensemble de boutons de radio est censé représenter un choix d'options mutuellement exclusives donc il devrait toujours y avoir une option choisie par défaut et donc un bouton de radio "coché" par défaut (l'état initial du formulaire) et ce contrairement à un select qui lui permet plus de marge (choix unique, choix multiple, pas de choix), non?
    En effet ; je suis d'accord avec toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le bouton reset n'efface pas les champs du formulaire
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2023, 17h55
  2. les champs de mon formulaire ne sont pas reconnu
    Par molo1987 dans le forum Langage
    Réponses: 9
    Dernier message: 28/02/2011, 21h25
  3. [AC-2007] "Glitch" lorsque ma souris survole les champs de mon formulaire
    Par al_bert dans le forum IHM
    Réponses: 8
    Dernier message: 11/06/2009, 21h49
  4. Comment verifier les champs de mon formulaire
    Par pracede2005 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 17/04/2007, 08h26
  5. [PHP-JS] bouton reset ne supprimant pas des champs avec value
    Par SegmentationFault dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo