2010-03-09 81 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

相关问题