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 Framework PHP Discussion :

Utilisation de ZendX_Jquery [ZF 1.11]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Par défaut Utilisation de ZendX_Jquery
    Bonjour,
    Je débute avec l'utilisation de l'ajax avec ZF, j'ai créée un Zend_Form qui me permet d'enregistrer des emails, j'appelle une action de mon controller qui me fait le traitement d'enregistrement dans la BD, par contre j'aimerai le faire en AJAX avec jQuery, je cherche des exemples, mais je ne trouve pas vraiment ce que je veux.

    Comment implémenter l'action de mon Controller en AJAX je ne sais pas comment faire, d'avance merci pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Par défaut Quelques éléments supplémentaires
    Voici la version sans Zendx_Jquery, juste Zend_Framework :

    La vue du Layout contenant le code AJAX en jQUERY:
    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
     
    <script type="text/javascript">
    $(function(){
    	$("#traitementOK").hide();
    	$("#traitementpasOK").hide();
     
        $("#form_newsletter_suscribe").submit(function() {
        	$("#traitementOK").hide();
        	$("#traitementpasOK").hide();
     
        	myDataForm = $(this).serialize();
            $.ajax({
            		type: "POST",
             		data: myDataForm,
             		url: $(this).attr("action"),
             		success: function(data){
    					if(data == "OK"){						
    						$("#newsletter_suscribe").remove();
    						$("#traitementOK").addClass('formOK');
    	        			$("#traitementOK").fadeIn(1000);
    					}else{
    						$("#traitementpasOK").addClass('formpasOK');
    	         			$("#traitementpasOK").fadeIn(1000);
    					};					
             		},
            		error: function(erreur){
             			alert("C'est pas OK");
             		}
             	});
            return false;
         });
    });
    </script>
    Un petit Helper qui appelle mon objet Zend_Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Zend_View_Helper_ShowSubscribeForm extends Zend_View_Helper_Abstract 
    {
        public function showSubscribeForm()
        {
            //Formulaire d'inscription Newsletter
            $form = new Frontend_Form_Newsletter();
            return (object) $form;
        }
    }
    Mon action du Controller concerné :
    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
     
    public function inscriptionnewsletterAction ()
        {
            //Pas de vue au depart
            $this->getHelper('layout')->disableLayout();
            $this->getHelper('viewRenderer')->setNoRender();
     
            $form = new Frontend_Form_Newsletter();
            $formData = $this->getRequest()->getPost();
     
            if ($formData) {
                //Langue d'inscripiton et Actif par defaut
                $formData['id_langue'] = App_Tools::getIdSiteLanguageByKey();//Methode perso
                $formData['inscrit_actif'] = 1;
     
                if ($form->isValid($formData)) {
                	$model = new Frontend_Model_Inscritnewsletter($formData);
                    $mapper = new Frontend_Model_InscritnewsletterMapper();
                    $mapper->save($model);
                    echo 'OK';
                } else {         
                    $form->populate($formData);
                    echo 'pasOK';
                }
            }
        }
    Mon Objet Zend_Form :
    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
     
    	public function __construct($options = null)
        {
            parent::__construct($options);
     
        	$this->setMethod('post')
        		 ->setAttrib('id', 'form_newsletter_suscribe');
     
        	$email = new Zend_Form_Element_Text('inscrit_email');
            $email->setLabel(App_Translate::translate('Recevoir notre lettre d\'informations'))
                ->addDecorator('ViewHelper')
                ->addDecorator('Errors')
                ->removeDecorator('DtDdWrapper')
            	->setAttrib('id', 'email')
                ->setAttrib('size', '180')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty',true)            
                ->addValidator('emailAddress')->addErrorMessage(App_Translate::translate('Please fill out your e-mail!'));
     
            $submit = new App_Form_Element_Submit(App_Translate::translate('Valider'));
            $submit->setAttrib('id', 'send')
                   ->addDecorator('HtmlTag', array('tag' => 'p', 'id' => 'submit-wrap'));
     
            $element = array($email, $submit);
     
            $this->addElements($element);
        }

    Le tout fonctionne parfaitement, mais j'aimerai bien-sur j'aimerai utilser Zendx_Jquery pour rester à 100% dans Zend Framework.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Par défaut Clôture du topic
    N'ayant pas de réponse, je clôture le topic

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

Discussions similaires

  1. [ZF 1.8] Utilisation de ZendX_Jquery
    Par fefe69 dans le forum Zend_Form
    Réponses: 14
    Dernier message: 13/08/2009, 18h04
  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