2011-07-02 3 views
2

나는이 CakePHP cotroller 데이터 양식 아약스를 보내려고RequestHandler를 사용하여 아약스의 데이터를 받아들이려면 어떻게해야합니까?

function loadtooltip(obj, $user_id) { 
//AJAX 
var req = Inint_AJAX(); 
req.onreadystatechange = function() { 
     if (req.readyState==4) { 
      if (req.status==200) { 
       displaytooltip(obj, req.responseText); 
      } 
     } 
}; 

req.open("POST", "http://127.0.0.1/cakeplate/tooltips/tooltip/", true); 
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
req.send($user_id); 

};

이 컨트롤러 내가 수정 된 코드

답변

1

당신이 컨트롤러의 순간에하고있는 방법으로 나를 도와 사람을 필요

<?php 
Class TooltipsController extends AppController{ 
var $name = 'Tooltips'; 
var $uses = array('Reply','User'); 
var $component = array('RequestHandler','Javascript','Ajax'); 
var $layout = 'tooltip'; 


function tooltip($user_id=NULL){ 

       if(!empty($user_id)){ 
        $tooltip = $this->Reply->User->findById($user_id); 
        $this->set('tooltip',$tooltip); 
       } 

} 
} 
?> 

, 당신이 나를 USER_ID을 수 얻을 수 없습니다 왜냐하면 그것은 http의 GET 메소드를 통과 한 var이기 때문입니다.

이 URL에 대한 예를 들어 GET 요청을하는 경우이 변수는 접근 할 것 : 1을 $ USER_ID을 것 http://example.com/cakeplate/tooltips/tooltip/1. 당신이 POST로 요청을 보내는 경우

, 당신이 VAR $ this-> 데이터 당신이 컨트롤러에 전달하는 VAR을 기반으로 요청을 처리 할 수있을 것입니다 이런 식으로 값을 액세스 할 수 있습니다.

이 컨트롤러가 뷰를 렌더링해야하는 또 다른 문제는 http://book.cakephp.org/view/1238/REST을 살펴 보는 것이 좋습니다. 컨트롤러가 다른 뷰를 구문 분석 할 경로를 만드는 방법을 볼 수 있습니다. json (이 경우에 제안하는 것)과 같은 다른 사용자 정의 레이아웃을 만든 다음이보기에서 json 값만 표시 할 수 있습니다.

마지막으로,하지만,뿐만 아니라 중요한, 난 당신이, 내가 쉽게 될 것이라고 생각 자바 스크립트 부분을 할 jQuery를 사용하는에 제안, 당신은 http://api.jquery.com/jQuery.get

에서 그것을 확인할 수 있습니다
관련 문제