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 :

[ZF 1.8] Utilisation de ZendX_Jquery


Sujet :

Zend_Form PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut [ZF 1.8] Utilisation de ZendX_Jquery
    Bonjour a tous,

    J'ai un problème pour utiliser ZendX_JQuery.

    J'ai mis mon dossier ZendX contenant Jquery au même niveau que le dossier Zend.

    J'ai le bootstrap suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $view->addHelperPath(APPLICATION_PATH . "/Zend/View/Helper", "Zend_View_Helper_");
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
    J'ai suivi le tutorial suivant:
    http://zendgeek.blogspot.com/2009/07...framework.html

    Dans mon layout, j'ai mon menu qui est inséré. Si je le laisse alors j'ai le haut de ma page qui s'affiche correctement et à l'endroit de mon menu, j'ai ceci:
    Fatal error: Call to a member function _() on a non-object in D:\WWW\wamp\www\Dossier\application\layouts\layout.phtml on line 76

    Si j'enleve mon menu du layout, j'ai alors mon formulaire qui s'affiche (avec le datepicker notamment) mais quand je clique à l'intérieur, rien ne se passe. Je n'ai aucun javascript ....

    Pourriez vous m'aider please ....

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Le problème est dans ton layout, montre-nous les lignes 71 à 81 stp.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Voila les lignes de 40 à 100, pour que tu puisses mieux comprendre :

    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
    57
    58
    59
    60
    $this->headScript()
    ->appendFile($this->baseUrl()  . '/public/js/scripts.js', 'text/javascript')
    ->appendFile($this->baseUrl()  . '/public/js/fckeditor/fckeditor.js', 'text/javascript')
    ->appendFile($this->baseUrl()  . '/public/js/jquery/jquery.js', 'text/javascript')
    ->appendFile($this->baseUrl()  . '/public/js/jquery/jquery.cascade.js', 'text/javascript')
    ->appendFile($this->baseUrl() . '/public/js/publisher.js', 'text/javascript')
    ->appendFile($this->baseUrl()  . '/public/js/ui/jquery.js', 'text/javascript')
    ->appendFile($this->baseUrl()  . '/public/files/jquery/js/jquery-ui-1.6.custom.min.js', 'text/javascript');
     
     
    $this->JQuery()->setLocalPath($this->baseUrl() . '/public/js/ui/jquery.js')
                   ->addStylesheet($this->baseUrl() . '/public/js/themes/ui.datepicker.css');
     
     
    Zend_Registry::getInstance()->get('logger')->debug('Starting HTML Output');
     
    echo $this->doctype(). "\n";
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->escape(Zend_Registry::get('config')->general->site->meta->language); ?>" lang="<?php echo $this->escape(Zend_Registry::get('config')->general->site->meta->language); ?>">
    <head>
    <?php echo $this->headMeta() . "\n"; ?>
    <?php echo $this->headTitle() . "\n"; ?>
    <?php echo $this->headLink() . "\n"; ?>
    <?php echo $this->headScript() . "\n"; ?>
    <?php echo $this->JQuery(); ?>
     
     
    </head>
    <body>
    <div id="header">
          <div id="imageHeader"><img src="<?php echo $this->baseUrl() ; ?>/public/images/header.png" alt="Image"/>
          <ul id="<?php echo $this->translationView->_('nomMenu');?>">
                    <li class='<?php echo $this->escape($this->welcome); ?>'><a href="<?php echo $this->url(array('controller' => $this->escape($this->controller1), 'action' => $this->escape($this->action1), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>">
                    <b><?php echo $this->translationView->_('menu1');?></b></a></li>
                    <li class='<?php echo $this->escape($this->createaccount); ?>'><a href="<?php echo $this->url(array('controller' => $this->escape($this->controller2) , 'action' => $this->escape($this->action2 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>"><b><?php echo $this->translationView->_('menu2');?></b></a></li>
                    <li class='<?php echo $this->escape($this->retrievepassword); ?>'><a href="<?php echo $this->url(array('controller' => $this->escape($this->controller3), 'action' => $this->escape($this->action3 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>"><b><?php echo $this->translationView->_('menu3');?></b></a></li>
                    <li class='<?php echo $this->escape($this->instructions); ?>'><a href="<?php echo $this->url(array('controller' => $this->escape($this->controller4), 'action' => $this->escape($this->action4 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>"><b><?php echo $this->translationView->_('menu4');?></b></a></li>
                    <li class='<?php echo $this->escape($this->contact); ?>'><a <?php
                    if ($this->onclick==""){ ?>href="<?php echo $this->url(array('controller' => $this->escape($this->controller5), 'action' => $this->escape($this->action5 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>
                        <?php }
                    else { ?>
                        onclick="<?php echo $this->onclick; }?>">
                        <b><?php echo $this->translationView->_('menu5');?></b></a>
                        </li>
                        <?php if ($this->escape($this->module)=='publisher'){ ?>
                            <li class='<?php echo $this->escape($this->retrievepassword); ?>'><a href="<?php echo $this->url(array('controller' => $this->escape($this->controller6), 'action' => $this->escape($this->action6 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>"><b><?php echo $this->translationView->_('menu6');?></b></a></li>
                              <li class='<?php echo $this->escape($this->contactExit); ?>'><a <?php
                    if ($this->onclickExit==""){ ?>href="<?php echo $this->url(array('controller' => $this->escape($this->controller7), 'action' => $this->escape($this->action7 ), 'param'=>null, 'typeAF'=>null, 'attached'=>null)); ?>
                        <?php }
                    else { ?>
                        onclick="<?php echo $this->onclickExit; }?>">
                        <b><?php echo $this->translationView->_('menu7');?></b></a>
                        </li>
                      <?php } ?>
            </ul>
            </div>
    </div>
            <?php echo $this->layout()->content ?>
     
    </body>

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Si j'ai précise le numéro des lignes, c'est pour qu'on puisse retrouver précisement la numéro 76 (5 avant, 5 après)... Montre-nous la ligne 76 alors...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    C'est celle là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ul id="<?php echo $this->translationView->_('nomMenu');?>">

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Je l'aurai parié, ça n'a aucun sens :

    <?php echo $this->translationView->_('nomMenu');?>

    Qu'es-ce que tu voulais faire ? afficher une variable protégée ??

    (C'est quoi translationView ? J'ai cherché dans l'API Doc j'ai pas trouvé)

  7. #7
    Membre actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Feng-Huang Voir le message
    Je l'aurai parié, ça n'a aucun sens :

    <?php echo $this->translationView->_('nomMenu');?>

    Qu'es-ce que tu voulais faire ? afficher une variable protégée ??

    (C'est quoi translationView ? J'ai cherché dans l'API Doc j'ai pas trouvé)
    Si ça a un sens, c'est un helper de vue de traduction. Cherche à Zend_Translate plutôt.

    Donc visiblement tu as plutôt un problème avec ton module de traduction et non avec ton implémentation de jQuery.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    J'ai beaucoup d'autres pages. Cette ligne et ce menu marche nickel.

    J'ai le code suivant dans mon bootstrap pour affiché ce que je veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $translate = new Zend_Translate('csv', APPLICATION_PATH . '/application/author/languages/lang.en.csv', 'en');
            $translate->addTranslation(APPLICATION_PATH . '/application/author/languages/lang.fr.csv', 'fr');
            $translate->setLocale(Zend_Registry::getInstance()->config->general->site->language);
            $translate->setOptions(array('log' => Zend_Registry::getInstance()->get('logger'), 'logMessage' => "Missing '%message%' in locale '%locale%'", 'logUntranslated' => true));
            Zend_Registry::getInstance()->set('translate', $translate);
    Je ne comprend pas le rapport entre cette ligne et mon code JQuery.

    De plus, comme je l'ai écrit plus haut, lorsque j'enlève mon code du menu (entre mes balises UL), j'ai bien ma textArea qui s'affiche qui doit etre le DatePicker de ZendX_jQuery mais quand je clique dessus, rien ne se passe au lieu de m'afficher le calendrier.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    C'est peut-être un détail mais tu as oublié de fermer ta double quote ligne 81 (le href)

    On peut voir ton aide de vue "translationView" ?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    OK Merci j'en avais oublié une 2eme aussi mais ça n'empechait pas le système de marcher.

    Tu n'as pas une idée pour mon problème?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    J'ai également une petite chose peut etre importante:
    sur firebug, lorsque mon textArea du DatePicker s'affiche, j'ai cette erreur au chargement:

    $.widget is not a function
    Jquery (l. 910): _uiHash: function(event) {\n

  12. #12
    Membre actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    Par défaut
    Est-ce que c'est le seul endroit où tu as utilisé des composants de ZendX_Jquery ?
    Est-ce que tu peux nous montrer comment tu utilise jQuery dans ta vue ?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    J'utilise le Zendx_Jquery ensuite dans mon controlleur puis dans ma vue:

    Mon controlleur:
    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
    $form = new ZendX_JQuery_Form();
            $date1 = new ZendX_JQuery_Form_Element_DatePicker(
                                    'date1',
                                    array('label' => 'Date:')
                    );
            $form->addElement($date1);
            $elem = new ZendX_JQuery_Form_Element_Spinner(
                                "spinner1",
                                array('label' => 'Spinner:')
                    );
            $elem->setJQueryParams(array(
                            'min' => 0,
                            'max' => 1000,
                            'start' => 100)
                    );
            $form->addElement($elem);
            $this->view->form = $form;

    Et voila ma vue:

  14. #14
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    J'ai réussi à faire marcher mon DatePicker. Par contre dans mon exemple, j'aimerais aussi faire marcher mon spinner, tab et autocomplete.

    J'ai vu sur la doc de Zend que ces 3 widgets n'était dispo que sur le SVN Jquery mais comment y accéder depuis mon layout?

  15. #15
    Membre habitué
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Points : 149
    Points
    149
    Par défaut
    J'ai suivi le même tuto mais j'ai un problème, les données s'affichent sans style (voir photos joint) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public function initView()
    	{
    	.....	
    		$view = new Zend_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);
    	}
    Ensuite JqueryForm.php

    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
    <?php
     
    class JQueryForm extends ZendX_JQuery_Form
    {
        public function init()
        {
            $this->setMethod('post');
            $this->setName('frm');
            $this->setAction('path/to/action');
     
            $date1 = new ZendX_JQuery_Form_Element_DatePicker(
                    'date1',
                    array('label' => 'Date:')
                 );
     
            $this->addElement($date1);
     
            $elem = new ZendX_JQuery_Form_Element_Spinner(
                    "spinner1", 
                    array('label' => 'Spinner:')
            );
     
            $elem->setJQueryParams(array('min' => 0, 'max' => 1000, 'start' => 100));
            $this->addElement($elem);
        }
    }
    ?>
    Mon controleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$form = new JQueryForm();
     
        $this->view->form = $form;
    mon layout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php        
    echo $this->JQuery(); 
    ?>
    </head>
    Ma vue
    Images attachées Images attachées  

Discussions similaires

  1. [ZF 1.11] Utilisation de ZendX_Jquery
    Par bpdelavega dans le forum Zend Framework
    Réponses: 2
    Dernier message: 20/12/2011, 09h22
  2. Utilisation de DatePicker dans ZendX_JQuery
    Par itsrugby dans le forum Zend Framework
    Réponses: 6
    Dernier message: 18/12/2008, 09h45
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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