2010-03-09 2 views
36

아약스를 사용하여 일부 데이터를 게시하고 있습니다. 해당 데이터를 조작하고 호출하는 jQuery 스크립트로 돌아가고 싶습니다. 여기 PHP에서 jQuery ajax 호출로 데이터를 반환하는 방법

내 jQuery를하다 :

여기
$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function() { 
    //do something; 
    } 
}); 

서버 내 somescript.php입니다 :

<?php 
    //manipulate data 
    $output = some_function(); //function outputs a comma-separated string 
    return $output; 
    ?> 

내가 서버 측에서 올바르게를하고있는 중이 야, 어떻게 내가 반환에 액세스 할이 아약스 호출이 완료되면 문자열?

+0

성공을 사용하여 다음 기능 (데이터) {경고 (데이터);} null을 알려줍니다. – user191688

답변

60

알아 냈습니다. 반환 대신 PHP에서 에코를 사용해야합니다.

<?php 
    $output = some_function(); 
    echo $output; 
?> 

그리고 JQ

:

success: function(data) { 
    doSomething(data); 
} 
+0

'$ output'이 배열 인 경우 어떻게 배열을 반환할까요? –

9

그것은 당신의 성공 함수에 전달 인자가있다 :

$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function(data) { 
    alert(data); 
    } 
}); 

전체 서명이 success(data, textStatus, XMLHttpRequest)이지만 돌아 오는 단순한 문자열이 있다면 당신은 단지 그가 첫 번째 인수를 사용할 수 있습니다. 항상 그렇듯이, see the docs for a full explanation :)

+0

정확히! 나는 당신이 나를 때려 눕힌 것을 본다 ... – Aaron

2

예, 당신이하고있는 방식은 완벽하게 합법적입니다. 클라이언트 측에서 해당 데이터에 액세스하려면 성공 함수를 편집하여 매개 변수 data를 승인하십시오.

$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function(data) { 
     doSomething(data); 
    } 
}); 
+0

나는 그렇게 생각했다. 그러나 경고 (데이터)가 널려있다. 그리고 PHP에서 $ 출력이 null이 아님을 압니다. 나는 textStatus를 시도 할 것이다. – user191688

관련 문제