2012-10-23 3 views
1

AJAX 요청을 사용하여 컨트롤러 클래스에서 단일 변수의 값을 가져오고 싶습니다. 하지만 여전히 반환 된 변수를 가져올 수 없습니다.CakePHP : AJAX를 사용하여 반환 된 데이터를 가져올 수 없습니다.

$(document).ready(function(){ 
      $("#mybutton").click(function(){       
       var userdata = {username : $("#UserUsername").val()}; 
        $.ajax({ 
         type:'POST', 
         url: 'http://localhost/mycakephp/tests/', 
         data: userdata,    
         success: function(data){ 
          alert(data.str); 
         } 
        });   
       }); 
     }); 

컨트롤러 클래스 : 여기 내가 사용하는 코드의 난 '$ str을'을 얻고 싶은

<?php 
class TestsController extends AppController { 

    public $name = 'Tests';  

    function index(){ 
     $this->autoRender=false; 
     $str = "valid"; 
     return $str; 
    } 

} 
?> 

변수는하지만, 경고() 결과는 여전히 "정의되지 않은"이유를 생각하는 "유효하다"?

답변

0

이것은 AJAX 요청이 작동하는 방식이 아니기 때문입니다. PHP는 서버 측 요청이나 PHP가 아니기 때문에 PHP 반환 값을 얻을 수 없습니다. HTML이나 JSON과 같은 실제 HTTP 응답을 잡아낼 수 있습니다. 당신은 단지 함수의 결과를 반향 수 있으며 수행해야합니다

function index(){ 
    $this->autoRender = false; 
    $str = "valid"; 
    echo $str; // echo rather than return here 
} 

$str은 다음 AJAX 요청의 data reposonse (그렇게하지 data.str)에 설정되어있는이 방법.

0

당신은 함수 이름 뒤에 업데이트 JQuery와 추가 인덱스에 필요한

$(document).ready(function(){ 
     $("#mybutton").click(function(){       
      var userdata = {username : $("#UserUsername").val()}; 
       $.ajax({ 
        type:'POST', 
        url: 'http://localhost/mycakephp/tests/index', 
        data: userdata,    
        success: function(data){ 
         alert(data.str); 
        } 
       });   
      }); 
    }); 
관련 문제