2012-04-11 3 views
12

jQuery Ajax 호출의 성공 함수가 올바르게 작동하는 데 어려움을 겪고 있었고 그 이유는 제 PHP 함수가 return $ result를 사용하고 있다는 것이 었습니다 내가 echo $ result를 사용해야 할 때.php echo와 jQuery ajax 호출의 차이점

Ajax가 "return $ result"에서 "echo $ result"로 호출 한 PHP 함수를 변경하면 문제가 해결되지만 그 이유는 무엇입니까? PHP 스크립트와 관련하여 두 가지 (리턴과 에코)의 차이점에 대한 많은 설명이 있지만 Ajax 호출로 그 값을 전송할 때 어떻게 다른가요?

답변

20

글쎄, ajax 호출은 서버로부터 응답을 읽으며 그 응답은 application/json 또는 text/html과 같은 일종의 읽을 수있는 데이터로 렌더링되어야합니다.

해당 데이터를 쓰려면 PHP가 포함 된 서버에서 echo이 필요합니다.

return 문은 데이터를 쓰지 않으며 단순히 서버 수준에서 반환됩니다.

8

Ajax 호출은 HTTP 요청의 응답을 사용합니다. PHP 스크립트는 returing에 의해 출력을 생성하지 않지만 반향으로 출력합니다.

2

echo 명령은 데이터를 대기 출력으로 출력합니다. 이것은 웹 브라우저 응용 프로그램에서 데이터를 요청한 클라이언트에 있습니다. CLI에서는이 데이터를 콘솔에 인쇄합니다. 및 return 명령은 값을 사용하여 함수를 종료하지만 아무 것도 인쇄하지 않습니다.

PHP 함수 사이에서 comunicate하려면 return을 사용해야합니다. 그러나 출력을으로하고 싶다면 echo을 사용해야합니다.

5

Ajax 호출은 우리가하는 것과 같은 방식으로 데이터를 봅니다. 문자열로 읽습니다. 그것은 기본적으로 다른 웹 페이지에 액세스하고 결과를 "수신 중"입니다. PHP의 'return'은 서버에서만 값을 반환합니다. 실제로 Ajax 호출이 이루어질 때보고있는 페이지에 데이터가 기록되도록 데이터를 출력해야합니다.

관련 문제