Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-10-2011 18:55:01

Absot
Membre
Date d'inscription: 28-12-2009
Messages: 170
Site web

Traitement formulaire en AJax

Bonjour, j'ai créé un formulaire avec Zend et je souhaite le traiter avec l'aide de l'Ajax, pour ce faire, j'ai ajouté:

Code:

$this->setAttrib('onSubmit', 'return maFonction();');

A mon formulaire où je fais un alert() dans la fonction qui est appelée lors de l'appuie sur le submit mais après ma page charge automatiquement celle de l'index sans que je puisse faire un traitement, comment puis-je faire en sorte de pouvoir faire mon traitement?

Voici la fonction javascript appelée, je l'ai testé avec un alert() au moment de l'appel, elle fonctionne:

Code:

$.ajax(
    {
       url: 'index/traitement-form',
       type: 'GET',
       context: document.corps,
       data: 
       {
        "format" : "html",
        "nom" : document.getElementById('nom'),
        "mail" : document.getElementById('mail'),
        "objet" : document.getElementById('objet'),
        "message" : document.getElementById('message')
       },
       error: errorAjax,
       dataType: "html",
       success: function(data)
       {
            alert('traitement fait!');
       }
    });

Voici mon controlleur (par ailleurs, que puis-je mettre dans mon if pour vérifier si mon formulaire est valide?):

Code:

$nom = $this->_getParam('nom');
        $mail = $this->_getParam('mail');
        $objet = $this->_getParam('objet');
        $message = $this->_getParam('message');
        
        $form = new ContactForm();
        $form->getElement('nom')->setValue($nom);
        $form->getElement('mail')->setValue($mail);
        $form->getElement('objet')->setValue($objet);
        $form->getElement('message')->setValue($message);
        
        // s'il n'est pas valide
        if()
        {
            $this->view->traitement = true;
            $this->view->form = $form->populate($formData);
        }else 
        {
            $this->view->traitement = false;
        }

Ma vue:

Code:

<?php 
if($this->traitement)
{
    echo "<script type='text/javascript'>alert('Requ\352te correctement ex\351cut\351e.');</script>";
}else 
{
    echo "<fieldset class='contact'>
        <legend>Contact</legend>
        Vous avez une question, une suggestion ou autre chose &agrave; me soummettre?<br/><br/>
        Dans ce cas, compl&eacute;tez ce formulaire ou <br/>
        contactez-moi directement &agrave; mon adresse mail: <a href='mailto:aurelien.laval@gmail.com' class='adresseMail'>aurelien.laval@gmail.com</a>" 
        . $this->form . "
        <span class='champs_required'>Les champs comportants un * sont obligatoires.</span>
      </fieldset>";
}
?>

Merci de votre aide.

Hors ligne

 

#2 25-10-2011 14:01:06

Polzie
Membre
Date d'inscription: 12-03-2010
Messages: 20

Re: Traitement formulaire en AJax

Essaie d'ajouter un "return false;" en javascript à la fin de ta fonction maFonction();

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages