如何将数据从PHP返回到jQuery ajax调用

时间:2010-03-09 16:45:46

标签: jquery ajax

我使用ajax发布一些数据。我想操纵该数据并返回调用jQuery脚本。

这是我的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调用完成后如何访问返回字符串?

4 个答案:

答案 0 :(得分:72)

我明白了。需要在PHP中使用echo而不是return。

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

jQ:

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

答案 1 :(得分:15)

这是传递给你的成功函数的一个参数:

$.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:)

答案 2 :(得分:2)

是的,你这样做是完全合法的。要在客户端访问该数据,请编辑您的成功函数以接受参数:data。

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

答案 3 :(得分:2)

基于接受的答案

$output = some_function();
  echo $output;

如果结果数组,然后使用json_encode,将得到javascript支持的json数组

$output = some_function();
  echo json_encode($output);

如果有人想在回显某些结果后停止执行,请使用php的exit方法。它将像返回关键字一样工作

$output = some_function();
  echo $output;
exit;