2012-12-19 3 views
0

이 스크립트에서 echo를 사용하는 대신 php의 return을 사용하면 작동하지 않습니다. 내가 에코를 사용하면 페이지에 직접 액세스 할 수있는 사람이 서식을 지정하지 않고도 출력을 볼 수 있습니다.반환은 작동하지 않지만 echo는이 jquery에서 PHP 스크립트

<script type="text/javascript"> 
$(function() { 

    $('.callAppend').click(function() { 
      $.ajax({ 
       type: 'GET', 
       url: 'recent.php', 
       dataType:'HTML', 
       cache:false, 

       success: function(data){ 
       console.log(data); 

       //}  

       }, 

      });  

     return false; 
    }); 
}); 
</script> 

이 PHP 스크립트

<?php 
$feedback = 'Hello this is the php page'; 

return $feedback; //Use echo, and all works fine. 
?> 
+2

함수 밖에서하는'return $ feedback;은 무엇입니까? – irrelephant

답변

2

return은 PHP 코드의 다른 부분에 함수로부터 복귀 값을 사용한다.

jQuery는 서버에서 PHP 코드 실행의 일부가 아니므로 실제로 서버 측에서 어떤 일이 일어나고 있는지 전혀 알 수 없습니다. jQuery는 렌더링 된 서버 응답을 기다리고 있습니다. 이는 echo이 제공하는 것입니다.


이 그래서 대답은 단지 AJAX 스크립트가 요청의 유형에 의해 호출 될 수 있도록하는 솔루션을 제공합니다 : 그것은 'XMLHttpRequest의'확인하더라도 Prevent Direct Access To File Called By ajax Function

을, 누군가의이 유형을 만들 수 귀하가 아닌 다른 웹 사이트에서 요청하십시오.

+0

다른 방법이 있나요? echo를 사용하는 대신? – Norman

+0

[print()] (http://php.net/manual/en/function.print.php)는'echo'와 똑같은 일을 할 수 있지만, @irrelephant 주석은 유효한 포인트라고 생각합니다. – afuzzyllama

+0

'echo'를 사용하십시오. - http://stackoverflow.com/questions/7094118/reference-comparing-phps-print-and-echo – irrelephant

2

AJAX를 사용하여 URL을로드하면 해당 URL의 원시 출력이로드됩니다. 에코는 출력을 생성하지만 리턴은 생성하지 않습니다. 당신은 OOP의 주제에 대해 어떤 목적을 가지고 리턴의 목적이 무엇인지 이해할 필요가 있습니다.

출력을 보내는 올바른 방법은 Echo입니다.

관련 문제