2010-08-15 4 views
1

Ajax를 사용하여 Zend_Form을 페이지를 다시로드하지 않고 제출하는 방법은 무엇입니까?Ajax를 사용하여 Zend_Form을 페이지를 다시로드하지 않고 제출하는 방법은 무엇입니까?

이 제출 될 때 페이지를 다시로드 양식을 작성하기위한 코드이며, 변경 될 또는이 양식은 아약스 (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; 
?> 


나는 생각하지 않는다

내 제안은 (양식 필터링 및 검증을합니까?) 적절한 보기입니다 :

<? 
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 idation을 사용하여 Ajax를 사용하여 양식을 보내고 서버 측에서 Ajax 요청이라는 것을 알면 (헤더와 같은 플래그를 사용하여 요청이 ajax인지 아는 지 검색 할 수 있음) 양식 '영역'만 반환하십시오. 그런 다음 받으면 덮어 쓸 수 있습니다.

현재 Zend_Form을 사용하는 것이 현명한 방법이 아닙니다.

관련 문제