Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 17/12/2011, 01h58   #1
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
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 : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
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.
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 12h31   #2
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
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 : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
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 :
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 :
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 :
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 :
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.
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 09h22   #3
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
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 : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
Par défaut Clôture du topic

N'ayant pas de réponse, je clôture le topic
bpdelavega 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 01h59.


 
 
 
 
Partenaires

Hébergement Web