2010-03-09 106 views
36

我使用ajax發佈了一些數據。我想操縱這些數據並返回到調用的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; 
    ?> 

我是在服務器端正確地這樣做,以及如何訪問返回ajax調用完成時的字符串?

+0

使用成功:功能(數據){警報(數據);}提醒空。 – user191688 2010-03-09 17:35:11

回答

60

我想通了。需要在PHP中使用echo而不是返回。

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

而且JQ:

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

如果'$ output'是一個數組,那麼你將如何返回該數組? – 2018-02-08 10:04:05

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 2010-03-09 16:50:15

2

是的,你這樣做的方式是完全合法的。要訪問客戶端的數據,請編輯您的成功函數以接受參數:數據。

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

我這麼認爲,但警報(數據)彈出空。我知道PHP中的$輸出不是null。我會嘗試textStatus。 – user191688 2010-03-09 16:58:03