2010-08-15 11 views
1

Comment faire une soumission Zend_Form sans recharger une page - avec Ajax?Comment faire une soumission Zend_Form sans recharger une page - avec Ajax?

Ce code est créer forme reload une page lorsqu'il est soumis, ce qui devrait être changer ou ajouter que ce formulaire présentera avec ajax (solution solution 2.jquery 1.Regular):

Forme:

class Application_Form_Login extends Zend_Form 
{ 
    public function init() 
    { 
     $username=new Zend_Form_Element_Text('username'); 
     $username ->addFilter('StringToLower') 
       ->addValidator('alnum'); 
     $password=new Zend_Form_Element_Text('password'); 
     $password->addFilter('StringToLower') 
       ->addValidator('alnum'); 
     $submit=new Zend_Form_Element_Submit('submit'); 
     $this->addElements(array($username,$password,$submit)); 
    } 
} 

Controller:

$form = new Application_Form_Login(); 
     $request = $this->getRequest(); 
     if ($request->isPost()) { 
      if ($form->isValid($request->getPost())) { 
       if ($this->_process($form->getValues())) { 
        //code indside 
       } 
      } 
     } 
$this->view->form = $form; 

Vue:

<? 
echo $this->form; 
?> 


Ma proposition que je ne pense pas est bon (ne forme filtrage et de validation fait?) Pour Voir:

<? 
echo $this->form; 
?> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('form').submit(function(){ 
     var sendData=$(this).serialize(); 
      $.ajax(
         { 
          url:'', 
          dataType:'json', 
          type:'POST', 
          data:sendData, 
          success: function(data) {     
          } 
         }); 
     return false; 
    }); 
}); 
</script> 

Merci

Répondre

1

Well, pour le filtrage/val idation que vous pourriez vouloir envoyer le formulaire en utilisant Ajax et en sachant du côté du serveur qu'il s'agit d'une requête Ajax (vous pouvez utiliser un drapeau pour cela, comme un en-tête, rechercher si une requête est ajax ou non) et envoyer retour seulement le formulaire 'zone'. Ensuite, lorsque vous le recevez, vous pouvez l'écraser.

Il n'y a actuellement aucune façon plus sage de le faire avec Zend_Form je pense.