Afficher un champ de formulaire selon la valeur d'un autre

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Afficher un champ de formulaire selon la valeur d'un autre

    Bonjour,
    Dans un formulaire PHP, je souhaiterai savoir si quelqu'un saurait me dire comment afficher un champ selon l'état d'une d'un bouton radio.

    J'ai un bouton radio avec une réponse qui est soit Oui soit Non.
    Si Oui est activé, je souhaite afficher un champ texte.

    Je souhaite que cela soit possible sans avoir besoin d'enregistrer au préalable le formulaire.

    Quelqu'un saurait-il m'aider ?

    Voici le morceau de code:
    //Mon bouton radio
    <div class="control-group">
    <div class="control-label"><?php echo $this->form->getLabel('asuj_tva'); ?></div>
    <div class="controls"><?php echo $this->form->getInput('asuj_tva'); ?></div>
    </div>
    // Mon champ texte
    <div class="control-group">
    <div class="control-label"><?php echo $this->form->getLabel('num_tva_intra'); ?></div>
    <div class="controls"><?php echo $this->form->getInput('num_tva_intra'); ?></div>
    </div>


    Cordialement.

    Eric

  • #2
    Re : Afficher un champ de formulaire selon la valeur d'un autre

    Bonjour,


    Envoyé par Agrepe Voir le message
    Dans un formulaire PHP, je souhaiterai savoir si quelqu'un saurait me dire comment afficher un champ selon l'état d'une d'un bouton radio.

    J'ai un bouton radio avec une réponse qui est soit Oui soit Non.
    Si Oui est activé, je souhaite afficher un champ texte.

    Je souhaite que cela soit possible sans avoir besoin d'enregistrer au préalable le formulaire.
    Si je comprends bien, il s'agit de champs conditionnels (conditional fields). Peut-être essayer le composant 'Visforms', qui les gère de façon très efficace : http://www.vi-solutions.de/en/docume...itional-fields.

    A noter, concernant le champ texte, il peut s'agir d'un champ texte à compléter. Dans ce cas, dans Visforms, choisissez le type 'Text'. Ou bien il peut s'agir d'un texte statique. Dans ce cas, choisissez le type 'Field separator'.



    Bonne soirée,
    Créateur de sites internet — Agence web indépendante http://www.e-33.fr | http://www.quali-site.fr (région de Bordeaux)

    Commentaire


    • #3
      Re : Afficher un champ de formulaire selon la valeur d'un autre

      Bonjour,

      Un formulaire en PHP ne peut en aucun cas gérer dynamiquement l'affichage d'un formulaire en cours, PHP étant exécuté sur le serveur, le formulaire sur le client, sauf à recourir à du code AJAX.

      Sous Joomla!, de très nombreux gestionnaires de formulaires, qui respectent intégralement les API du système (le type composant), savent le faire: par exemple BreezingForms (même en version Lite), VisForms (cité par PhilJ), RSForms Pro, etc.

      Tous utilisent du JavaScript pour gérer les conditions (sous BreezingForms, il s'agit de règles de visibilité). Puisqu'il s'agit de Joomla!, il est préférable d'utiliser des outils respectant les APIs pour ne pas rendre de risques de briser le système (dans la backend du formulaire, par exemple, une utilisation irraisonnée de mysql_connect peut provoquer des dégâts...)
      Pas de demande de support par MP.
      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

      Commentaire


      • #4
        Re : Afficher un champ de formulaire selon la valeur d'un autre

        Bonsoir,
        Merci beaucoup pour ta réponse, mais ce n'est pas de cela qu'il s'agit, mais d'un champ du formulaire d'une table, auquel je souhaite juste apporter des améliorations.
        Merci beaucoup en tout cas.
        Cordialement.
        Eric

        Commentaire


        • #5
          Re : Afficher un champ de formulaire selon la valeur d'un autre

          Peut-on savoir ce qu'est ce mystérieux champ de formulaire d'une table ? Ce n'est pas très clair.
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Re : Afficher un champ de formulaire selon la valeur d'un autre

            Bonjour,
            Il s'agit d'un formulaire dans un composant créé avec Component Creator.
            Il y une table dans laquelle s'enregistrent des personnes (Partenaires professionnels), ces personnes sont ou ne sont pas assujetties à la TVA, il y a donc un bouton radio qui permet de réponde Oui ou Non à la question "Assujetti ?". Dans la cas d'un Oui, j'aimerai afficher un champs texte dans lequel on peut renseigner le numéro de TVA, que ce champ ne soit pas affiché en cas de réponse négative.
            Cordialement.
            Eric

            Commentaire


            • #7
              Re : Afficher un champ de formulaire selon la valeur d'un autre

              Il faut utiliser du JavaScript avec un toggle value http://jsfiddle.net/jadendreamer/5SArB/
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Afficher un champ de formulaire selon la valeur d'un autre

                Bonjour,
                Merci beaucoup Jisse.
                Je vais regarder ce que tu m'as envoyé.
                Cordialement.
                Eric

                Commentaire


                • #9
                  Re : Afficher un champ de formulaire selon la valeur d'un autre

                  Bonjour,
                  j'ai essayer, mais cela masque tout les champs qui se trouvent après l'insertion de mon script.
                  j'ai fait comme cela: (Je n'ai pas dû faire comme il faut.
                  Cordialement.
                  Eric

                  <!-- Champ du bouton radio de choix -->
                  <div class="control-label"><?php echo $this->form->getLabel('asuj_tva'); ?></div>
                  <div class="controls"><?php echo $this->form->getInput('asuj_tva'); ?></div>
                  </div>
                  <!-- Champ à afficher ou pas (Affiché si 'oui' choisit dans le champ bouton radio -->
                  <div class="control-group">
                  <div class="control-label"><?php echo $this->form->getLabel('num_tva_intra'); ?></div>
                  <div class="controls"><?php echo $this->form->getInput('num_tva_intra'); ?></div>
                  </div>
                  <!-- Afficher le champ 'num_tva_intra' seulement si 'OUI' est sélectionné dans le champ 'asuj_tva' -->
                  <script $(document).ready(function () {
                  toggleFields();
                  $("#asuj_tva").change(function () {
                  toggleFields();
                  });
                  });
                  function toggleFields() {
                  if ($("#asuj_tva").val() = oui)
                  $("#num_tva_intra").show();
                  else
                  $("#num_tva_intra").hide();
                  }
                  </script>
                  <!-- Fin de modif -->
                  Dernière édition par Agrepe à 22/01/2016, 11h34

                  Commentaire


                  • #10
                    Re : Afficher un champ de formulaire selon la valeur d'un autre

                    Regardes bien le code sur le site exemple. Dans ton code à toi, les divs n'ont pas d'id, donc ça coince...
                    D'autre part, en JavaScript, tout comme en PHP, les chaînes doivent être entre guillemets simples... Ton oui du test n'est pas vu comme une chaîne.
                    Pas de demande de support par MP.
                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                    Commentaire


                    • #11
                      Re : Afficher un champ de formulaire selon la valeur d'un autre

                      Merci beaucoup, j'ai fait des test avec == à la place de =, avec les guillemets, (ça je connais) mais je débute en php et script je n'ai pas assez de compétence et d'expérience pour détecter les soucis rapidement.
                      Je vais suivre ce que tu me dis.
                      Je te remercie beaucoup de ton aide.
                      Cordialement.
                      Eric

                      Commentaire


                      • #12
                        Re : Afficher un champ de formulaire selon la valeur d'un autre

                        Tu ferais ça ?

                        <div class="control-group">
                        <div id='asuj_tva' class="control-label"><?php echo $this->form->getLabel('asuj_tva'); ?></div>
                        <div class="controls"><?php echo $this->form->getInput('asuj_tva'); ?></div>
                        </div>
                        <div class="control-group">
                        <div id='num_tva_intra' class="control-label"><?php echo $this->form->getLabel('num_tva_intra'); ?></div>
                        <div class="controls"><?php echo $this->form->getInput('num_tva_intra'); ?></div>
                        </div>
                        <!-- Afficher le champ 'num_tva_intra' seulement si 'OUI' est sélectionné dans le champ 'asuj_tva' -->
                        <script $(document).ready(function () {
                        toggleFields();
                        $('#asuj_tva').change(function () {
                        toggleFields();
                        });
                        });
                        function toggleFields() {
                        if ($('#asuj_tva').val() = 'oui')
                        $('#num_tva_intra').show();
                        else
                        $('#num_tva_intra').hide();
                        }
                        </script>
                        <!-- Fin de modif -->

                        Commentaire


                        • #13
                          Re : Afficher un champ de formulaire selon la valeur d'un autre

                          un test d'égalité en JavaScript, comme en PHP utilise == et pas = qui lui affecterait la valeur.
                          Pas de demande de support par MP.
                          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                          Commentaire


                          • #14
                            Re : Afficher un champ de formulaire selon la valeur d'un autre

                            Oui, j'avais essayé également, mais ça ne change rien.

                            A propos des id ferais-tu comme j'ai fait ?

                            Commentaire


                            • #15
                              Re : Afficher un champ de formulaire selon la valeur d'un autre

                              La base est bonne.

                              Quelle est la valeur des boutons radio Oui et Non, c'ets bien Oui et Non et pas 0 et 1 par exemple ?
                              Il faut la valeur et pas le libellé.
                              Pas de demande de support par MP.
                              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X