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

Bibliothèques et frameworks PHP Discussion :

[PEAR][HTML_QuickForm] Un bouton radio doit faire apparaitre une zone texte conditionnée


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut [PEAR][HTML_QuickForm] Un bouton radio doit faire apparaitre une zone texte conditionnée
    Bonsoir, je suis nouveau sur quickform.

    et voici mon problème

    J'ai une zone radio où je dois choisir un état civil.
    Si on sélectionne "Madame", une nouvelle zone de texte doit apparaître après la demande du nom pour demander le nom de jeune fille qui doit aussi être obligatoire.
    et sinon on resélectionne Monsieur, la zone doit disparaître.

    Code : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>formulaire</title>
    </head>
    <body>
    <?php
    //    set_include_path(get_include_path() . ";c:\php\pear");
        require_once "HTML/QuickForm.php";
        require_once 'HTML/QuickForm/group.php';
        require_once 'HTML/QuickForm/radio.php';
     
        $form = new HTML_QuickForm('frmTest', 'post');
        $form->addElement('text', 'Pseudo', 'Votre pseudo : ');
    $etat1 = new HTML_QuickForm_radio('Etat Civil', null, 'Monsieur', 'Monsieur');
    $etat2 = new HTML_QuickForm_radio('Etat Civil', null, 'Madame', 'Madame');
    $group = new HTML_QuickForm_group('Etat Civil', 'Etat Civil', array($etat1, $etat2));
     
    // Ajout du bouton radio au formulaire
    $form->addElement($group);
     
     
    // On pt meme ajouter une regle
    $form->addRule('Etat Civil', 'Vous devez sélectionner un état civil', 'required', '', 'client');
     
     
        $form->addElement('text', 'Nom', 'Votre nom : ');
        $form->addElement('text', 'Email', 'Votre adresse email : ');
        $options = array(
            'language'  => 'fr',
            'format'    => 'dMY',
            'minYear'   => 2001,
            'maxYear'   => 2005
        );
        $form->addElement('date', 'date', 'votre date de naissance : ', $options);
        $form->addRule('Pseudo', 'Vous devez saisir un pseudo', 'required', '', 'client');
        $form->addRule('Nom', 'Vous devez saisir un nom', 'required', '', 'client');
        $form->addRule('Email', 'Vous devez saisir une adresse Email', 'required', '', 'client');
        $form->addRule('Pseudo', 'Votre pseudo doit avoir entre 6 caractères et 10 caractères', 'rangelength', array(6,10), 'client');
        $form->addRule('Email', 'Vous devez saisir une adresse email valide', 'email', '', 'client');
        $form->applyFilter('Nom','trim') ;
        $form->applyFilter('Pseudo','trim') ;
        $form->setRequiredNote('<span style="color: #ff0000">*</span> = champs obligatoires');
        $form->setJsWarnings('Erreur de saisie','Veuillez corriger');
        $form->addElement('reset', 'bouton_clear', 'Effacer');
        $form->addElement('submit', 'bouton_effacer', 'Envoyer');
        if ($form->validate()) {
            echo "Toutes les règles sont respectées<br>";
        }
         else {
            $form->display();
        }
    ?>
    </body>
    </html>
    Mais je ne vois pas comment

    Merci

  2. #2
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut ajax
    Bonjour,

    si tu veux faire apparaître un champ en fonction d'une action sur un checkbox
    tu dois utiliser du javascript pour le faire apparaître.

    genre je le cache avec une option CSS display:none, et sur l'action du checkbox tu branches un fonction javascript qui va faire apparaître le champ sus dit.

    J'utilise avec PEAR, prototype. C'est simple puissant et surtout tu as des commandes magiques $('toto') + de l'ajax.

    PEAR + smarty + Scriptaculous cela vaut un bon Zend ...

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

Discussions similaires

  1. Faire apparaitre une edit box a l'aide d'un radio button
    Par UgoFerrari dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 28/11/2012, 15h05
  2. Réponses: 6
    Dernier message: 29/06/2010, 22h43
  3. [AJAX] Faire apparaitre une zone
    Par noobyyy dans le forum AJAX
    Réponses: 5
    Dernier message: 13/01/2010, 13h16
  4. [debutant]faire apparaitre une zone avec du texte
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2007, 08h16
  5. [Plugin / Graphique] Faire apparaitre une fenêtre?
    Par relivio dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 31/03/2004, 19h10

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