2011-05-05 3 views
2

순수한 Javascript httprequest를 사용하여 Zend의 컨트롤러/동작에 메시지를 게시하고 콜백 함수를 사용하여 페이지에서 다시 처리 할 수있는 응답을 얻고 싶습니다.Zend AJAX with pure JavaScript

두 질문 :

내가 계정에 (내가 PHP 파일을 가리 고전적인 경우) 젠드에 의해 부과 된 base을 복용 POST 문자열을 포맷 할 수있는 방법을
  1. .
  2. 내가 할 수있는 가장 간단한 방법은 (가능한 구현이 몇 가지 있습니다.) - 응답을 반환하는 동작 방법입니다.

다시 말하지만 jQuery, JSON, 프로토 타입 또는 기타 라이브러리는 없습니다.

사용 사례는 다음과 같습니다. 양식 섹션이있는보기가 있습니다. 입력 중 하나는 선택 드롭 다운 목록이며, 해당 목록의 항목을 클릭하고 컨트롤러/작업에 대한 Ajax 요청을 트리거하고 서버에서 텍스트 영역을 업데이트하는 값을 즉시 가져옵니다.

+4

JSON은 (는) 라이브러리가 아닙니다. XML과 같은 데이터 형식입니다. –

+1

라이브러리 사용에 대한 혐오감을 설명 할 수 있을지 궁금하십니까? 그들은 이런 식으로 '고전적'js를 반복해서 다시 작성할 필요가 없도록 작성되었습니다. – HurnsMobile

+0

JSON 정보 : 특수한 Zend 객체를 사용하지 않고 suer를 만들고 싶습니다. –

답변

1

귀하가 게시하는 URL은 모두 귀하의 컨트롤러 및 모듈 구조에 따라 다르므로 자세한 답변을 드릴 수 없습니다. 그러나 간단한 예를 들면, 이것을 시험해보십시오.

폼 포스트 컨트롤러

http://domain.com/index/textarea에 : IndexController.php

<?php 

class IndexController extends Zend_Controller_Action { 

    public function indexAction() { 

    } 

    public function textareaAction() { 
     // if you are using layouts 
     $this->_helper->layout->disableLayout(); 

     // process your post here 
     $var = $this->_getParam('posted_var'); 

     $this->view->text = '$var processed'; 
    } 
} 

보기 : textarea.phtml

<?php 

echo $this->text; 

지금보기에 무엇, 것입니다 자바 스크립트로 돌아갑니다.

더 나은 구현을 위해 AjaxContext switching에서 읽을 수 있습니다. JSON을 사용하면 뷰 파일을 삭제할 수 있으며 ZF는 JSON 인코딩 된 문자열을 반환합니다.

+0

감사합니다. 사실 나는 당신이 언급 한 것과 같은 패턴으로 해냈습니다. AjaxContext는 자신이 100 %를 처리하려고 할 때 사용하지 않는 것이 더 좋다. 그것은 경험에서 나온 것입니다. 따라서 레이아웃 비활성화 및 JSON 인코딩은 액션 메서드의 설명서에 따라 수행해야합니다. –