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 :

JQuery et ZendFramework [ZF 1.11]


Sujet :

Zend_Form PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Points : 14
    Points
    14
    Par défaut JQuery et ZendFramework
    Bonjour,
    J'aimerai utiliser cette magnifique bibliothèque qu'est JQuery, je me casse la tête depuis toute l'aprèm et je n'arrive à rien, alors je me tourne vers vous.

    Je souhaite faire marcher une date à l'aide de datePicker. Mais ça ne marche pas. J'aimerai avoir vos lumières.

    J'ai donc l'arborescence suivante :
    /application
    /img
    /library
    --> Zend
    --> ZendX
    /public
    -->js -->jquery

    Voici le formulaire que je souhaite afficher :

    /application/modules/defaut/forms/Profil.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
    28
    29
    30
    31
    32
    33
    34
    <?php
     
    class Default_Form_Profil extends ZendX_JQuery_Form
    {
     
        public function init()
        {
    		$this->setName('rubrique');
     
    		 $dateNaiss = new ZendX_JQuery_Form_Element_DatePicker(
                        'dateNaiss',
                        array('label' => 'Date de naissance (jj/mm/aaaa)')
                    );
                    $dateNaiss->setJQueryParam('dateFormat', 'dd/mm/yyyy');
     
    		$signature = new Zend_Form_Element_Textarea('signature');
    		$signature->setLabel('Signature')
    			  ->addFilter('StripTags')
    			  ->addFilter('StringTrim');
     
    		$mail = new Zend_Form_Element_Text('mail');
    		$mail->setLabel('E-mail')
    			  ->addFilter('StripTags')
    			  ->addFilter('StringTrim')
    			  ->addValidator('EmailAddress');
     
    		$envoyer = new Zend_Form_Element_Submit('valider');
    		//$envoyer->setAttrib('id', 'boutonenvoyer');
     
    		$this->addElements(array($login, $avatar, $pseudo, $sexe, $dateNaiss, $signature, $mail, $envoyer));
        }
     
     
    }

    Mon contrôleur : /application/modules/defaut/controllers/ProfilController.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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
     
    class ProfilController extends Zend_Controller_Action
    {
     
    	public function init()
    	{
    		parent::init();
    		$models = $this->_request->getParam('module').'/models';
    		set_include_path('../application/modules/'.$models . PATH_SEPARATOR . get_include_path());
     
    		$this->view->module = $this->getRequest()->getModuleName();
    		// recupere le module
    		$this->view->controller = $this->getRequest()->getControllerName(); 
    		// recupere le controller
    		$this->view->action = $this->getRequest()->getActionName(); 
    		// recupere l'action
     
    		// Gère la session
    		$this->view->auth = new Zend_Session_Namespace('user');
     
    		// si pas connecté, on redirige
    		if(!isset($this->view->auth->login)) {
    			$this->_redirect('/');
    		}
    	}
     
    	public function indexAction()
    	{
     
     
    		$this->view->title = "profil";
    		$this->view->headTitle($this->view->title, 'PREPEND');
     
    		$form = new Default_Form_Profil();
    		$this->view->form = $form;
    		$this->view->jQuery()->enable()->uiEnable();
    		$user = new Default_Models_DbTable_Users();
    		$user = $user->searchUser($this->view->auth->login);
     
    		$this->view->avatar = '';
    		if(!empty($user["avatar"]))
    			$this->view->avatar = './data/img/avatars/'.$user["avatar"];
     
     
    		if ($this->getRequest()->isPost()) {
    		    $formData = $this->getRequest()->getPost();
    		    if ($form->isValid($formData)) {
    		        $login = $form->getValue('login');
    		        $pseudo = $form->getValue('pseudo');
    		        $dateNaiss = $form->getValue('dateNaiss');
    		        $signature = $form->getValue('signature');
    		        $sexe = $form->getValue('sexe');
    		        $mail = $form->getValue('mail');
    		        $avatar = $form->getValue('avatar');
     
    		        $values = array(
    		        	'pseudo'=>$pseudo,
    		        	'dateNaiss'=>$dateNaiss,
    		        	'signature'=>$signature,
    		        	'avatar'=>$avatar,
    		        	'sexe'=>$sexe,
    		        	'mail'=>$mail
    		        );
     
    		        if (!$form->avatar->receive()) {
    	                echo "Erreur d'upload";
    	            }
     
    		        try {
    					$user = new Default_Models_DbTable_Users();
    				    $user->updateUser($login, $values);
    		        }catch (Exception $e) {
    					echo $e->getMessage();
    				}
     
    		        $this->_redirect('/profil');
    		    } 
    		    else {
    		        $form->populate($formData);
    		    }
     
    		} else {
    			try {
    				$user = new Default_Models_DbTable_Users();
    				$form->populate( $user->searchUser($this->view->auth->login) );
    			} catch (Exception $e) {
    				echo $e->getMessage();
    				$this->view->form = null;
    			}
    		}
    	}
     
    }
    ma vue /application/modules/defaut/views/scripts/Profil/index.phtml


    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
    <article>
    	<h2>Profil - <?php echo $this->auth->login; ?></h2>
    <?php $this->jQuery()->enable(); ?>
        <?php echo $this->datePicker('dateNaiss', '30-07-2010', array('dateFormat' => 'dd-mm-yy', 'changeMonth' => true, 'changeYear' => true), array()) ?>
     
    	<?php
    		if(!empty($this->avatar)) {
    	?>
    		<img src="<?php echo $this->avatar;?>" alt="avatar de <?php echo $this->auth->login; ?>" class="avatar" />
    	<?php
    		}
    	?>
     
    	<?php
     
    		echo $this->form;
    	?>
    </article>
    Mon Bootstrap : /application/Bootstrap.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
    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
    <?php
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    	protected function _initAutoLoader() {
    		$autoloader = Zend_Loader_Autoloader::getInstance();
     
    		//on configure le module par défaut avec son namespace, son chemin et les ressources associées
    		$moduleLoader = new Zend_Application_Module_Autoloader(array(
    			'namespace' => 'Default_',
    			'basePath' => APPLICATION_PATH . '/modules/default'));
    		$moduleLoader->addResourceType('Models', 'models', 'Models');
    		$moduleLoader->addResourceType('Forms', 'forms', 'Forms');
    		Zend_Session::start();
     
    		return $moduleLoader;
    	}
     
    	/**
    	 * Fonction servant Ã* initialiser la vue
    	 */
    	protected function _initView()
        {
            // Initialize view
            $view = new Zend_View();
            $view->doctype('HTML5');
            $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=utf-8');
            $view->headTitle()->setSeparator(' - ');
            $view->headTitle(' Site du Tutorat');
     
        return $view;
        }
     
    	/**
    	* Initialize Translation
    	*
    	* @return Zend_Translate
    	*/
    	public function _initTranslate()
    	{
    	    $translate = new Zend_Translate('array', APPLICATION_PATH . '/languages/fr.php', 'fr');
    	    Zend_Registry::set('Zend_Translate', $translate);
    	    return $translate;
    	}
     
           //ne marche pas !
    	/*protected function _initJQuery()
        {
            $this->bootstrap('view');
            $view = $this->getResource('view');
            $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
        }*/
     
    }
    et enfin, le layout :
    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
    <?php echo $this->doctype(); ?>
    <html lang="fr">
    	<head>
    		<?php echo $this->headTitle(); ?>
    		<?php echo $this->headMeta(); ?>
    		<?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/themes/default/base.css'); ?>
    		<?php echo $this->headScript()->appendFile($this->baseUrl().'/javascript/javascript.js', 'text/javascript'); ?>
    	</head>
    	<body>
    		<section id="page">
     
    			<?php echo $this->partial('header.phtml', array('menu'=>$this->menu($this->baseUrl()))); ?>
     
    			<section id="content">
    				<?php 
    					echo $this->partial('filAriane.phtml', array('filAriane'=>$this->filAriane($this->baseUrl(),
    																							   $this->module,
    																							   $this->controller,
    																							   $this->action,
    																							   $this->page)));
    					echo $this->partial('sideMenu.phtml', array('module'=>$this->module));
    				?>
    				<section>
    					<?php
    						//cette fonction permet de récupérer la vue de l'action appelée
    						echo $this->layout()->content; 
    					?>
    				</section>
    			</section>
     
    			<?php echo $this->partial('footer.phtml'); ?>
     
    		</section>
    	</body>
    </html>

    Merci s'il est possible d'avoir une aide.

    Concrètement, il ne se passe rien. Dans le meilleur des cas, le formulaire apparaît, mais lorsque je clique sur le champs, rien n’apparaît.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    Problème résolu :

    Dans le bootstrap
    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
    <?php
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    	protected function _initAutoLoader() {
    		$autoloader = Zend_Loader_Autoloader::getInstance();
     
    		//on configure le module par défaut avec son namespace, son chemin et les ressources associées
    		$moduleLoader = new Zend_Application_Module_Autoloader(array(
    			'namespace' => 'Default_',
    			'basePath' => APPLICATION_PATH . '/modules/default'));
    		$moduleLoader->addResourceType('Models', 'models', 'Models');
    		$moduleLoader->addResourceType('Forms', 'forms', 'Forms');
    		Zend_Session::start();
     
    		return $moduleLoader;
    	}
     
    	/**
    	 * Fonction servant Ã* initialiser la vue
    	 */
    	protected function _initView()
        {
            // Initialize view
            $view = new Zend_View();
            $view->doctype('HTML5');
            $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=utf-8');
            $view->headTitle()->setSeparator(' - ');
            $view->headTitle(' Site du Tutorat');
     
        return $view;
        }
     
    	/**
    	* Initialize Translation
    	*
    	* @return Zend_Translate
    	*/
    	public function _initTranslate()
    	{
    	    $translate = new Zend_Translate('array', APPLICATION_PATH . '/languages/fr.php', 'fr');
    	    Zend_Registry::set('Zend_Translate', $translate);
    	    return $translate;
    	}
     
    	protected function _initJQuery()
        {
            $this->bootstrap('view');
            $view = $this->getResource('view');
            $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
    		$viewRenderer->setView($view);
        }
     
     
    }

    Et le layout :

    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
    <?php echo $this->doctype(); ?>
    <html lang="fr">
    	<head>
    		<?php echo $this->headTitle(); ?>
    		<?php echo $this->headMeta(); ?>
    		<?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/themes/default/base.css'); ?>
    		<?php echo $this->headScript()->appendFile($this->baseUrl().'/javascript/javascript.js', 'text/javascript'); ?>
    		<?php	$this->JQuery()->addStyleSheet($this->baseUrl() . '/js/jquery/development-bundle/themes/ui-lightness/jquery-ui-1.8.7.custom.css');
    			    $this->JQuery()->setUiLocalPath($this->baseUrl() .'/js/jquery/development-bundle/ui/jquery-ui-1.8.7.custom.js');    
    			    echo $this->jQuery();
       			 ?>
    	</head>
    	<body>
    		<section id="page">
     
    			<?php echo $this->partial('header.phtml', array('menu'=>$this->menu($this->baseUrl()))); ?>
     
    			<section id="content">
    				<?php 
    					echo $this->partial('filAriane.phtml', array('filAriane'=>$this->filAriane($this->baseUrl(),
    																							   $this->module,
    																							   $this->controller,
    																							   $this->action,
    																							   $this->page)));
    					echo $this->partial('sideMenu.phtml', array('module'=>$this->module));
    				?>
    				<section>
    					<?php
    						//cette fonction permet de récupérer la vue de l'action appelée
    						echo $this->layout()->content; 
    					?>
    				</section>
    			</section>
     
    			<?php echo $this->partial('footer.phtml'); ?>
     
    		</section>
    	</body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JQuery] Votre Framework Ajax ?
    Par rad_hass dans le forum jQuery
    Réponses: 12
    Dernier message: 30/08/2007, 19h31
  2. [JQuery] calendrier popup en ajax
    Par popogendarme dans le forum jQuery
    Réponses: 2
    Dernier message: 19/06/2007, 16h45
  3. [JQuery] Encore cache et IE7 mais..
    Par popogendarme dans le forum jQuery
    Réponses: 6
    Dernier message: 29/05/2007, 18h05
  4. [js]problèmes avec jquery
    Par pomgnon dans le forum jQuery
    Réponses: 3
    Dernier message: 30/03/2007, 20h47
  5. [JQUERY] Comment appeler une fonction php avec jquery
    Par popogendarme dans le forum jQuery
    Réponses: 1
    Dernier message: 20/03/2007, 16h07

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