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. #1
    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 préremplir un champ d'un formulaire avec une bdd ?
    Bonjour ,

    j'aimerais crée un formulaire couplé avec une base de donnée.

    la personne doit saisir un champ commune avec une aide à la saisie,

    Quel class,plugin.. je dois utiliser afin de préremplir ce champs à partir de 3 lettres ?

    faut t'-il

    -1 utiliser JQUERY, peut t'-il attaquer la base de donner et rechercher suggérer une liste de commune

    -2 utiliser du Javascript (je crois que c'est ajax),

    -3 dans Zend il y a une class pour nous facilité la vie pour faire ce genre de formulaire.

    avant de commencer tête baisser j'aimerais savoir quel outils je dispose pour arriver a faire cela.

    merci de votre réponse

  2. #2
    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 te faut utiliser autocomplete de jquery, d'ailleurs celui ci est implémenté dans zend dans la library ZendX qui est en extra dans le full package.

  3. #3
    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 sh4, en effet avec jquery c'est plus facile, par contre je suis le tuto de zendcaste
    et il y a une écriture que je comprend pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       $filter = function($city) use ($term)
           {
               if(stristr($city, $term))
               {    
                   return true;
               }
               else
               {
                   return false;
               }
     
           };
    je ne comprend pas cette écriture pour function ($city) use ($term)??
    evidament dans netbeans cette ligne est marqué en rouge ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    D’après la description du http://blog.pascal-martin.fr/post/ph...res-et-lambdas
    Use permet d’importer des variables externes, issues de l’espace de noms « global », au sein de la fonction lambda.
    Bien sur tu pourra créer ton propre traitement pour récupérer les données
    A la recherche d'un film : http://chercher-un-film.com

  5. #5
    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 de m'avoir éclaire,
    du coup netbeans souligne la function anonyme et dit que cette ligne n'est pas compatible,
    je pensais que c'était une erreur de syntaxe, (poutant j'ai netbean 7.0.1 , la derniere version)
    du coup je n'ai pas besoin de me préocuper de cette erreur?
    je travaille avec LAMP un version de php5.3.5

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Eclipse helios ne la souligne pas.
    A la recherche d'un film : http://chercher-un-film.com

  7. #7
    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 testé cela fonctionne

    par contre à cette ligne, a quoi peut bien servir l'argument "ac", j'ai essayer de mettre 'toto' cela fonctionne aussi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            $this->view->autocompleteElement  = new ZendX_JQuery_Form_Element_AutoComplete('ac');
    j'aurai aussi une autre question,

    lorqu'on ouvre les sources de la page web, on voit toutes les donnée comme ceci par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).ready(function() {
        $("#ac").autocomplete({"source":["lyon","paris","marseille"]});
    });
    ici la liste que j'ai testé est minuscule, mais s'il par exemple on attaque une base de donnée de 50000 noms par exemple , qu'on recherche une référence qui contient "a" et qu'il y a 10000 résultats, on vas tous les afficher ??
    cela va pas faire ramer le serveur ?

    si cela n'engendre pas de perte de performance , je vais essayer directement de charger le résultat de la requête qui demande toutes les noms qui contiennent "a",

    par contre si cela engendre un grosse perte de performance , sur les résultat des requête j'avais penser par exemple, d' exiger qu'on tape au moin 3 lettres , je pense que que cela réduire drastiquement les résultat, une fois récupérer , les mettrais dans un array, et je ferais la recherche dessus.

    que pensez vous entres ces 2 solutions ??

  8. #8
    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
    ac ici correspond a l id sur l input le auto complete fonctionne

  9. #9
    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
    ah oui j'avais pas pensé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <dt id="ac-label"><label for="ac" class="optional">Autocomplete</label></dt>
    dans la source on le vois bien

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Et si tu récupère d'une base de donné tu dois faire une limit pour ne pas avoir beaucoup de réponse par exemple 10
    A la recherche d'un film : http://chercher-un-film.com

  11. #11
    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
    c'est vrai que ta solution est plus pratique,
    j'ai trouvé le tuto de cinephile
    http://blog.developpez.com/cinephil/...-une/#more9853

    il y a un truc que je ne comprend pas
    lorsque j'exécute le controlleur qui contient cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                       $this->_helper->json(array_values($listecommunes));
    le navigateur me demande de télécharger un fichier json.part ?? pouquoi il ne l'execute pas

    j'ai ouvet le contenu et cella corresponde au premier élément de la liste communes

  12. #12
    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
    Cela te permet d encoder ton resultat en json et celui ci ne peut etre vu directement via le navigateur mais ne t inquietes pas la recuperation coté appel ajax sera bon.

    Tu peux mettre une condition pour l environnemen development en cas que ce ne soit pas une requete ajax et faire un zend debug au lieu du json

  13. #13
    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 fait comme tu me l'a dit, voici le script que j'ai mis, pour le moment, j'essaye pas à pas de comprendre et de faire fonctionner l'ensemble du tuto

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        public function indexAction()
        {
                    $commune = new Application_Model_DbTable_Cp();
                   $resultat = $commune->getCommunesParDebutNom('DARD');
                   $listecommunes = array();
                   foreach($resultat as $cmn)
                   {
                       $listecommunes[$cmn['id_commune']]=$cmn['id_commune'];
                       echo $cmn['id_commune'];
                       Zend_Debug::dump(array_values($listecommunes));
                   }
        }
    }
    si par exemple je veux qu'avoir 10 résultat , ce code est t'il bon ?

    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
     
     
     public function getCommunesParDebutNom($debut) 
      { 
        $debut = $debut.'%'; 
        $sql = " 
          SELECT id_commune, code_postal, nom 
          FROM communes  
          WHERE nom LIKE :debut  LIMIT 10
        "; 
        $communestrouvees = $this->_db->fetchAll($sql, array('debut' => $debut)); 
     
        return $communestrouvees; 
      }
    }

  14. #14
    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
    Un conseil pense toujours a utiliser les quoteIdentifier ça te permettra de pouvoir changer de SGBD plus facilement.

  15. #15
    Membre régulier Avatar de Alcide_
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Sinon, pour élargir les pistes, DojoToolkit est très bien implémenté dans Zend et te permet assez facilement de faire de l'auto-complete...
    une piste : tuto zend+dojo
    Voilà c'est fait, on a aussi parlé de Dojo !

  16. #16
    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 trouvé pouquoi il se comporte étrangement avec firelfox, dans le tuto de zencast il met ceci, un copier coller d'une source n'est pas suffisant il faut encore et encore vérfier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            $this->view->autocompleteElement->setjQueryParam(
                    'source', '/index/city');
    j'ai donc regarder mon code source hml (a force de tourner en rond durant toute la matiner )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).ready(function() {
        $("#ac").autocomplete({"source":"\/index\/city"});
    });
    en regardant cela je me dit c'est vraiment bizzard le chemin avec "/\"

    donc j'ai enlever le slash de index "/index", et la miracle, mon autcompletion fonctionne très bien, et ce firefox ne me demande plus de télécharger ce fichier json
    comme quoi il ne faut jamais se fier au fichier source du tuto

    je pense que peut être l'auteur de zendcast a utliser une ancienne version ou peut être que c'est pas sous linux mais sous mac

    par contre il y a un truc que je ne vois pas ou se trouve "term"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $results =  Application_Model_DbTable_Cp::search($this->_getParam('term'));
    comment on peut écrire _getParam('term');

    c'est un attribut term ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class model
    {
    $term;// dans ma class model $term n'est pas déclarer ? en tant qu'attribut ?
     
    public function getparm()
    {
    $this->term = "??";
    }
    }

  17. #17
    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
    Premièrement le \ n'a aucun rapport avec mac ou linux d'ailleurs l'interprétation est identique la seule différence qu'il peut y avoir à ce niveau c'est que sous mac tu ne peux pas avoir deux fichier du style Fichier.php et fichier.php car c'est considérer comme le même fichier tandis que sous linux ça fonctionne.

    En suite tu dis que c'est une erreur, et là c'est toi qui n'a pas respecté le tuto, tu crois que le $baseurl ne sert à rien ? Donc à toi de revoir cette partie et de corriger ton code.

    En ce qui concerne term, ce paramètre correspond à ce qui est envoyé par défaut par auto complète et qui doit être récupérer du coté du fichier indiqué en source.

    Pour le récupérer dans une action c'est :
    $this->_request->getParam('term');

    il est également possible de changer de nom de paramètre

  18. #18
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    là c'est toi qui n'a pas respecté le tuto,
    en fait je n'ai rien fait j'ai juste télécharger le tuto de zend caste et je l'ai executer(bien sur j'avais tous mélanger entre ces 2 tutos, donc j'ai décider de tous recommencer et de faire fonctionner celui-ci )

    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
     
    <?php
     
    class IndexController extends Zend_Controller_Action
    {
     
        public function init()
        {
            $this->view->addHelperPath(
                    'ZendX/JQuery/View/Helper'
                    ,'ZendX_JQuery_View_Helper');
        }
        public function indexAction()
        {
            $this->view->autocompleteElement = new ZendX_JQuery_Form_Element_AutoComplete('ac');
            $this->view->autocompleteElement->setLabel('Autocomplete');
            $this->view->autocompleteElement->http://code.google.com/p/zendcasts/source/browse/trunk/zc59-autocomplete-with-zendx-jquery/application/controllers/IndexController.phpsetJQueryParam(
                    'source', '/index/city');
        }
        public function cityAction()
        {
            $results = Model_City::search($this->_getParam('term'));
            $this->_helper->json(array_values($results));
        }
     
    }

    il y a bien un slash avant l'index
    voici le lien du code
    http://code.google.com/p/zendcasts/s...Controller.php

    Bon maintenant que ce tuto fonctionne je vais me concentrer sur le tuto de cinePhile, je vais essayer de ne pas tous mélanger.

    j'essaye d'aller pas à pas donc mon premier but est d'afficher juste la zone de saisie de la commune donc dans mon controller j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public function indexAction()
        {
            $form = new Application_Form_Commune();
            $this->view->form=$form;
        }
    voici donc le formulaire
    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
     
    <?php
     
    class Application_Form_Commune extends ZendX_JQuery_Form
    {
        public function init()
        {
            $this->setName('commune');
            $this->setMethod('post');
     
            $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl();//pointe sur ..../public
     
           $id_commune = new ZendX_JQuery_Form_Element_AutoComplete('id_commune');
           $id_commune->setLabel('recherche une commune')
                   ->setRequired(false)
                   ->setFilters(array('StripTags'))
                   ->setJQueryParam('autoFille',true)
                   ->setJQueryParams(array('source'=>$baseUrl.'/index/recherchecommunes'));
        }
    }
    et voici ma vu index.php (pour le moment je ne respecte l'emplacement des fichiers, je met tous dans l'index)

    donc j'ai fait avant de crée le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    zf create form commune
    [code]

    voici la vu index.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h1>recherche commune</h1>
    <?php
    echo $this->form;
    ?>
    ici il y a juste le titre qui est afficher j'ai pas la zone de saisie

    j'essaye donc de savoir si mon formulaire a bien été envoyer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h1>recherche commune</h1>
    <?php
    var_dump($this->form);
    ?>
    j'ai quelque chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    object(Application_Form_Commune)#30 (27) { ["_attribs":protected]=> array(2) { ["name"]=> string(7) "commune" ["method"]=> string(4) "post" } ["_decorators":protected]=> array(3) { ["FormElements"]=> array(2) { ["decorator"]=> string(12) "FormElements" ["options"]=> NULL } ["HtmlTag"]=> array(2) { ["decorator"]=> string(7) "HtmlTag" ["options"]=> array(2) { ["tag"]=> string(2) "dl" ["class"]=> string(9) "zend_form" } } ["Form"]=> array(2) { ["decorator"]=> string(4) "Form" ["options"]=> NULL } } ["_defaultDisplayGroupClass":protected]=> string(22) "Zend_Form_DisplayGroup" ["_description":protected]=> NULL ["_disableLoadDefaultDecorators":protected]=> bool(false) ["_displayGroupPrefixPaths":protected]=> array(1) { [0]=> array(2) { ["prefix"]=> string(27) "ZendX_JQuery_Form_Decorator" ["path"]=> string(27) "ZendX/JQuery/Form/Decorator" } } ["_displayGroups":protected]=> array(0) { } ["_elementDecorators":protected]=> NULL ["_elementPrefixPaths":protected]=> array(1) { [0]=> array(3) { ["prefix"]=> string(27) "ZendX_JQuery_Form_Decorator" ["path"]=> string(27) "ZendX/JQuery/Form/Decorator" ["type"]=> string(9) "decorator" } } ["_elements":protected]=> array(0) { } ["_elementsBelongTo":protected]=> NULL ["_errorMessages":protected]=> array(0) { } ["_errorsExist":protected]=> bool(false) ["_errorsForced":protected]=> bool(false) ["_formOrder":protected]=> NULL ["_isArray":protected]=> bool(false) ["_legend":protected]=> NULL ["_loaders":protected]=> array(2) { ["DECORATOR"]=> object(Zend_Loader_PluginLoader)#31 (4) { ["_loadedPluginPaths":protected]=> array(0) { } ["_loadedPlugins":protected]=> array(0) { } ["_prefixToPaths":protected]=> array(2) { ["Zend_Form_Decorator_"]=> array(1) { [0]=> string(20) "Zend/Form/Decorator/" } ["ZendX_JQuery_Form_Decorator_"]=> array(1) { [0]=> string(28) "ZendX/JQuery/Form/Decorator/" } } ["_useStaticRegistry":protected]=> NULL } ["ELEMENT"]=> object(Zend_Loader_PluginLoader)#32 (4) { ["_loadedPluginPaths":protected]=> array(0) { } ["_loadedPlugins":protected]=> array(0) { } ["_prefixToPaths":protected]=> array(2) { ["Zend_Form_Element_"]=> array(1) { [0]=> string(18) "Zend/Form/Element/" } ["ZendX_JQuery_Form_Element_"]=> array(1) { [0]=> string(26) "ZendX/JQuery/Form/Element/" } } ["_useStaticRegistry":protected]=> NULL } } ["_methods":protected]=> array(4) { [0]=> string(6) "delete" [1]=> string(3) "get" [2]=> string(4) "post" [3]=> string(3) "put" } ["_order":protected]=> array(0) { } ["_orderUpdated":protected]=> bool(false) ["_subFormPrefixPaths":protected]=> array(0) { } ["_subForms":protected]=> array(0) { } ["_translator":protected]=> NULL ["_translatorDisabled":protected]=> bool(false) ["_view":protected]=> NULL ["_isRendered":protected]=> bool(false) }
    donc je me suis dit la j'ai bien mon formulaire qui est envoyer à la vu
    jai rajouter ceci a la vu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php 
    echo $this->datePicker('db','',array());?>
    bon la je vois bien le calendrier

    en écrivant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //configuration.ini
    autoloaderNamespaces[] = "ZendX"
     
    //methode ini dans controlleur/index
        public function init()
        {
            $this->view->addHelperPath(
                    'ZendX/JQuery/View/Helper'
                    ,'ZendX_JQuery_View_Helper'); 
        }
    cela remplace t'il ce boostrap??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      protected function _initJQuery() 
      { 
        $this->bootstrap('view'); 
        $view = $this->getResource('view'); 
        $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); 
        $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); 
        $viewRenderer->setView($view); 
        Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 
      }
    je te remercie encore de réponde a mon poste, cela me permet d'avancer pas à pas, je suis encore débutant , et c'est pas facile d'apprendre tout seul.


  19. #19
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      protected function _initJQuery() 
      { 
        $this->bootstrap('view'); 
        $view = $this->getResource('view'); 
        $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); 
        $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); 
        $viewRenderer->setView($view); 
        Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 
      }

    Si cela fonctionne laisse ainsi, il me semble que j'ai quelque chose de plus ou moins similaire.
    ZendX est intégrer à Zend pas besoin de déclarer la librairie.

    Par contre pour ce qui concerne ton autocomplete je te conseille de le construire dans ton form commune de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $element = new ZendX_JQuery_Form_Element_AutoComplete("id_commune");
    				$element->setJQueryParams(array('source'	=> 'ta source' 
    												'minLength' => 3));
    $this->addElement($element);
    Je ne suis pas sur que cela fonctionne directe car chez moi je fais de la grosse gestion dessous avec des Zend_Json_Expr() pour source select et change

  20. #20
    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
    maintenant cela fonctionne

    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
     
     
        public function rechcommuneAction()
        {
             $request = $this->getRequest();
            $debut = $request->getParam('term');
            $commune = new Application_Model_DbTable_Cp();
            $result= $commune->getCommunesParDebutNom($debut);
            $listevilles = array();
             foreach ($result as $commune)
             {
                 $nom[]= $commune['nom'];
     
             }
     
        $this->_helper->json(array_values($nom));
     
        }
    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
     
     <?php
     
    class Application_Form_Commune extends ZendX_JQuery_Form 
    {
        public function init()
        {
     $commune = new ZendX_JQuery_Form_Element_AutoComplete('commune');
            $commune ->setLabel('commune :')
                                     ->setRequired(false)
                                      ->setJQueryParams(array('source'    => 'index/rechcommune',
                                        'minLength' => 3,
    ))
                ;
            $this->addElement($commune);
     
        }
    }
    j'ai essayer de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $commune->addFilter('UpperCase)
    mais il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Exception caught by form: Plugin by name 'UpperCase' was not found in the registry; used paths: Zend_Filter_:
    j'en ai besoin les communes sont en majuscule

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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