Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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é:
$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:
$.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?):
$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:
<?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 à me soummettre?<br/><br/> Dans ce cas, complétez ce formulaire ou <br/> contactez-moi directement à 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
Essaie d'ajouter un "return false;" en javascript à la fin de ta fonction maFonction();
Hors ligne