2010-08-15 3 views
1

Как сделать представление Zend_Form без перезагрузки страницы - с помощью Ajax?Как сделать представление Zend_Form без перезагрузки страницы - с помощью Ajax?

Это код для создания формы, перезагружать страницу, когда представляется, что должно быть изменение или добавить, что эта форма будет представлять с помощью AJAX (1.Regular раствор раствор 2.jquery):

Форма:

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)); 
    } 
} 

контроллер:

$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; 

Вид:

<? 
echo $this->form; 
?> 


Мое предложение, что я не думаю, что это правильный (это форма делает фильтрацию и проверку?) Для View:

<? 
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> 

Благодарности

ответ

1

Ну, для фильтрации/val вы можете отправить форму с помощью Ajax и зная на стороне сервера, что это запрос Ajax (вы можете использовать для этого флаг, например, заголовок, поиск знания, является ли запрос ajax или нет) и отправка назад только форма «область». Затем, когда вы его получите, вы можете перезаписать его.

В настоящее время нет более разумного способа сделать это с помощью Zend_Form, я думаю.

Смежные вопросы