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

Zend_Form PHP Discussion :

préremplir un champ d'un formulaire avec une bdd ? [ZF 1.11]


Sujet :

Zend_Form PHP

  1. #21
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->addFilter(new Zend_Filter_StringToUpper())

  2. #22
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    ça n'a pas fonctionner, par contre pas d'erreur,

    j'ai fait plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            $debut = $request->getParam('term');
            $debut= strtoupper($debut);
    je ne pense pas que cela soit grave que j'utlise hors zend

    une fois que je valide mon formulaire comment je récupère la case préremplit de la commune ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $commune = new ZendX_JQuery_Form_Element_AutoComplete('commune');
    j'ai essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //controller
          if ($this->getRequest()->isPost()) {
            $form_commune->getJQueryParams();
            }
            //
     
             ou      if ($this->getRequest()->isPost()) {
            $form_commune->getValue('commune');
            }
    mais sans succès, il faut instancier encore quelque chose pour savoir ce que l'on à sélectionner ?

  3. #23
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Que veux tu dire par récupérer?
    Sinon attention tu mets commune puis form_commune

  4. #24
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    en effet j'avais oublité le form_



    en fait je souhaite récupérer si je tape "ly" , la ville "lyon", pour afficher, vous avez selectionner "lyon"

    en essayant de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          if ($this->getRequest()->isPost()) {
                echo "saisie ok, on a cliquer sur envoyer";
    echo "vous avez saisie dans la liste déroulante la commune";   
     
           Zend_Debug::dump($this->getRequest()->getPost('commune'));
            }
    j'ai NULL sur le dump

    j'a regarder le code source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">
     
    <dt id="commune-label"><label for="commune" class="optional">commune :</label></dt>
    il faut bien passer par post pour récuper la selection?

  5. #25
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Je ne me suis jamais servis de l autocomplete pour ça c etait seulement pour des filtres.

    Il faut que tu regarde si il y a un input avec firebug sinon tu n enverra jamais celui ci

  6. #26
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j' ai pas réussi a récupérer par ce que je n'ai pas instancier Zend_form_Element_Submit.
    j'avais juste crée un formulaire qui contenait uniquement un bouton valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    class Application_Form_Valider extends Zend_Form
    {
        public function init()
        {
            $valider = new Zend_Form_Element_Submit('valider');
            $valider->setLabel('Valider');
     
            $this->addElements(array($valider)); 
     
     }
    }
    et j'appelllais succésivement mes formulaire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $form1 = new Zend_Form_form1();
    $form2 = new Zend_Form_form2();
    $form3 = new Zend_Form_form3();
    //le bouton qui permet de récupérer toute les champs
    $bouton = new Zend_Form_vaider();
    en ajoutant au formulaire comment un bouton supplémentaire, je peux enregister le nom de la commune par $resultat['commune'], (mais j'ai 2 bouton valider dans ma page )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          if ($this->getRequest()->isPost()) {
                echo "saisie ok";
             // Zend_Debug::dump(    $form_commune->getJQueryParams());
             $resultat =  $this->_request->getPost();
             echo $resultat['commune'];          
            }
    maintenant je peux enregister le nom de la commune par $resultat['commune'],

    comment on s'y prend si appelle 3 formulaires sans avoir à crée 3 bouton valider ? dans
    chacune des ces class form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //form1
            $valider = new Zend_Form_Element_Submit('valider');
            $valider->setLabel('Valider');
            $this->addElements(array($valider,$reponse1)); 
    //form2
            $valider = new Zend_Form_Element_Submit('valider');
            $valider->setLabel('Valider');
     
            $this->addElements(array($valider,$reponse2)); 
    //forme3
    etc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //on fait appelle a 3 formulaire dans la même page
    $form1 = new Zend_Form_1();
    //envoie à la même vu
    $form2 = new Zend_Form_2()
    //envoie à la même vu
    $form3 = new Zend_Form_3();
    //envoie à la même vu
    je pourrais regrouper mes 3 formulaires, mais je ne trouve pas pratique pour essayer de cloisonner les formulaires .

  7. #27
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Je pense que j'utilise mal la class From je pense qu'il faut pas que j'utilise son init

    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
     
    <?php
     
    class Application_Form_Questionnaire extends ZendX_JQuery_Form 
    {
        public function init()
        {
         //je laisse vide
       }
     
        public funciton question1()
        {
        }
     
        pubic function question2()
       {
       }
     
       public function question3()
       {
       }
    je vais essayer de voir ce que ça donne si je fait un seul sumbit, sil les infos sont bien transmit

  8. #28
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Trois formulaire en html standard sont chacun distinct donc ça sera identique sous Zend tu devrais créer des subform

  9. #29
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai donc essayer ce que tu m'a dit

    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
     
    <?php
     
    class Application_Form_Carnetadresse extends Zend_Form {
     
        protected  $liste_civilite=array('1'=> 'Madame',
                                                                        '2' =>'Monsieur',
                                                                        '3'=>'Mademoiselle',
                                                                        '4'=>'Non Communiqué');
        public function init() {
     
            $identite = new Zend_Form_SubForm();
     
            $identite->addElements(array(
                    new Zend_Form_Element_Select('civilte', $this->liste_civilite
                    )),
                     new Zend_Form_Element_Text('nom',array(
                        'required'=>true,
                        'label'=>'nom: ')                   
                    )
                );       
        }
    }
    j'ai pas d'erreur de syntax, mais il me dit que la methode identite n'existe pas

  10. #30
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Il doit te falloir quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->addSubForms(array('identite' => $identite));

  11. #31
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai mis tout en bas addsubform, ça fonctionne

    miantenant c'est délicat car comment on peut bien intégrer l'autcompletion
    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
     
            $commune = new Zend_Form_SubForm();
     
            $commune->addElements(array(
                new new ZendX_JQuery_Form_Element_AutoComplete('commune', array(
                    'required' => true,
                    'label' => 'commune (sans accent)',
                    'filters' => array('StringTrim', 'StringToUpper'),
                    'validators' => array(
                        'Alnum',
                        array('Regex',
                            false,
                            array('/^[A-Z]/'))
                    )
                )),
     
            ));
    ou je dois mettre ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    ->setJQueryParams(array('source' => 'index/rechcommune',
                        'minLength' => 2,

  12. #32
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    au lieux de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    new ZendX_JQuery_Form_Element_AutoComplete('commune', array(
                    'required' => true,
                    'label' => 'commune (sans accent)',
                    'filters' => array('StringTrim', 'StringToUpper'),
                    'validators' => array(
                        'Alnum',
                        array('Regex',
                            false,
                            array('/^[A-Z]/'))
                    )
                ))
    Sotkce le dans une variable sur laquelle tu fera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    ->setJQueryParams(array('source' => 'index/rechcommune',
                        'minLength' => 2,
    Et ensuite tu l'ajoutera à ton subform

  13. #33
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 34
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    HTML5 gère également l'autocomplete de manière très simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <input list="listeCommune"/>
    <datalist id="listeCommune">
    <?php
    foreach ($commune as $val) {
    echo '<option value="' . $val . '">';
    }
    ?>
    </datalist>

  14. #34
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci sam c'est toujours bon à savoir, mais je pense que tous les navigateur n'accepte pas le HTML5 c'est dommage

    5h4rk tu me dit de mettre le ce petite monde dans une variable ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    protected $variable = new ZendX_JQuery_Form_Element_AutoComplete('commune', array(
                    'required' => true,
                    'label' => 'commune (sans accent)',
                    'filters' => array('StringTrim', 'StringToUpper'),
                    'validators' => array(
                        'Alnum',
                        array('Regex',
                            false,
                            array('/^[A-Z]/'))
                    )
                ));
    mais en php on à la droit de faire ça??

    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
     
     
    classA
    {
      public function parle_a()
      {  
         echo "je travail pour A";
       }
    }
     
    classB
    {
     
     $je_suis_a = new classA()->parle_a();
     
     public function appelle_a()
     {
        echo $this->je_suis_a;
     }
    }
    je sais qu'en java je peux le faire mais avec php ??

    si je fait ceci
    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
     
    <?php
     
    class Application_Form_Carnetadresse extends Zend_Form {
     
        protected $liste_civilite = array('1' => 'Madame',
            '2' => 'Monsieur',
            '3' => 'Mademoiselle',
            '4' => 'Non Communiqué');
     
        protected $json = new ZendX_JQuery_Form_Element_AutoComplete('commune', array(
                    'required' => true,
                    'label' => 'commune (sans accent)',
                    'filters' => array('StringTrim', 'StringToUpper'),
                    'validators' => array(
                        'Alnum',
                        array('Regex',
                            false,
                            array('/^[A-Z]/'))
                    )
                ));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_NEW in /var/www/myboutik/application/forms/Carnetadresse.php on line 10
    voici ma class entière au cas ou
    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
     
    <?php
     
    class Application_Form_Carnetadresse extends Zend_Form {
     
        protected $liste_civilite = array('1' => 'Madame',
            '2' => 'Monsieur',
            '3' => 'Mademoiselle',
            '4' => 'Non Communiqué');
     
     
        public function init() {
            // ===========nom =============    
            $identite = new Zend_Form_SubForm();
            $identite->addElements(array(
                new Zend_Form_Element_Text('nom', array(
                    'required' => true,
                    'label' => 'nom (sans accent):',
                    'filters' => array('StringTrim', 'StringToUpper'),
                    'validators' => array(
                        'Alnum',
                        array('Regex',
                            false,
                            array('/^[A-Z]/'))
                    )
                )),
                // =========== prenom=============
     
                new Zend_Form_Element_Text('prenom', array(
                    'required' => true,
                    'label' => 'prénom:',
                )),
                // =========== civlite=============
                new Zend_Form_Element_Select('civlite', array(
                    'label' => 'civlité',
                    'multiOptions' => $this->liste_civilite,
                )),
     
     
     
     
            ));
     
     
            $this->addSubForms(array(
                'identite' => $identite,
     
            ));
        }
     
    }

  15. #35
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Quand tu veux ajouté un élément à un formulaite tu dois bien faire quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $element = $this->createElement('text','ton id');
    $element->setLabel('ton label');
     
    $this->addElement($element);
    En gros c'est un peu ça que je veux dire

  16. #36
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    gymnastique des neurones ...


    tu veux dire que je sorte de add élément, et que je remplace par l'un des éléments
    array par une variable?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $formulaire = new Zend_Form_SubForm();
    //ici on charge avant la fameuse methode
    $formulaire->addElements(array('toto',array(
    'label'=>'quelquechose,
    'filter'=>'pas d'espace,
    $variable));
    donc la fameuse methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $variable = new ZendX_JQuery_Form_Element_Autocomplete('chouette');
    $varible-->setJQuertyParam(array('souce'=>'lasrouce');

  17. #37
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Revois les bases avec Zend_Form je veux bien aider mais il y a des limites

    Au lieu de créer directement tes elements au moment ou tu les ajoute dans le addElement créé les avant et dans le addElement tu mettra les elements créés.

    Avec tout ce que je t ai dis tu as tout ce qu il faut

  18. #38
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    ça y' est ca fonctionne , tu m'a donné la bonne facon de faire, je n'aurai jamais penser de déporter tous ça dans une variable

    merci encore

    je clos ce pote, il me faut maintenant m'occuper de l'enregistrement de la base

  19. #39
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Citation Envoyé par keokaz Voir le message
    ça y' est ca fonctionne , tu m'a donné la bonne facon de faire, je n'aurai jamais penser de déporter tous ça dans une variable

    merci encore

    je clos ce pote, il me faut maintenant m'occuper de l'enregistrement de la base

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2015, 16h53
  2. Synchroniser un formulaire avec une BDD MySQL
    Par Warrer dans le forum Langage
    Réponses: 4
    Dernier message: 29/07/2008, 11h11
  3. Réponses: 3
    Dernier message: 20/09/2006, 16h07
  4. Affichage de nouveau champ de formulaire avec une case à cocher
    Par breizhgen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/09/2006, 21h46
  5. Execution formulaire avec une variable
    Par dsj dans le forum Access
    Réponses: 9
    Dernier message: 08/09/2005, 19h46

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