Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
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/09/2011, 21h00   #21
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Essaye avec :
Code :
->addFilter(new Zend_Filter_StringToUpper())
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 00h02   #22
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
ça n'a pas fonctionner, par contre pas d'erreur,

j'ai fait plus simple

Code :
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 :
1
2
 
 $commune = new ZendX_JQuery_Form_Element_AutoComplete('commune');
j'ai essayer ceci
Code :
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 ?
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 10h22   #23
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Que veux tu dire par récupérer?
Sinon attention tu mets commune puis form_commune
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 10h43   #24
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
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 :
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 :
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?
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 12h00   #25
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
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
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 12h56   #26
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
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 :
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 :
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 :
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 :
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 :
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 .
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 13h27   #27
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
Je pense que j'utilise mal la class From je pense qu'il faut pas que j'utilise son init

Code :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 14h21   #28
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Trois formulaire en html standard sont chacun distinct donc ça sera identique sous Zend tu devrais créer des subform
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 16h01   #29
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
j'ai donc essayer ce que tu m'a dit

Code :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 17h21   #30
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Il doit te falloir quelque chose du genre :

Code :
$this->addSubForms(array('identite' => $identite));
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/09/2011, 18h19   #31
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
j'ai mis tout en bas addsubform, ça fonctionne

miantenant c'est délicat car comment on peut bien intégrer l'autcompletion
Code :
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 :
1
2
3
 
                ->setJQueryParams(array('source' => 'index/rechcommune',
                    'minLength' => 2,
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 19h33   #32
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
au lieux de faire :

Code :
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 :
1
2
3
 
                ->setJQueryParams(array('source' => 'index/rechcommune',
                    'minLength' => 2,
Et ensuite tu l'ajoutera à ton subform
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 19h51   #33
Futur Membre du Club
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 18
Points : 18
Bonsoir,

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

Code :
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>
Sam__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 20h57   #34
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
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 :
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 :
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 :
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 :
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 :
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,
 
        ));
    }
 
}
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 21h16   #35
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Quand tu veux ajouté un élément à un formulaite tu dois bien faire quelque chose du style :

Code :
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
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/09/2011, 22h24   #36
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
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 :
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 :
1
2
3
 
$variable = new ZendX_JQuery_Form_Element_Autocomplete('chouette');
$varible-->setJQuertyParam(array('souce'=>'lasrouce');
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 22h36   #37
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
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
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 23h22   #38
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
ç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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 00h48   #39
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 79
Points : 79
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h40.


 
 
 
 
Partenaires

Hébergement Web