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

如何将数据从PHP返回到jQuery ajax调用,jquery,ajax,Jquery,Ajax,我正在使用ajax发布一些数据。我想处理这些数据并返回到调用jQuery脚本 以下是我的jQuery: $.ajax({ type: "POST", url: "somescript.php", datatype: "html", data: dataString, success: function() { //do something; } }); 以下是服务器上的somescript.php: <?php //manipulate d

我正在使用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调用完成时如何访问返回字符串?

这是传递给success函数的参数:

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

完整签名是
success(data,textStatus,XMLHttpRequest)
,但是如果返回的是一个简单的字符串,则可以只使用第一个参数。和往常一样,:)

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

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

我想出来了。需要在PHP中使用echo而不是return

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

基于公认的答案

$output = some_function();
  echo $output;
如果它生成数组,那么使用json_编码,它将生成javascript支持的json数组

$output = some_function();
  echo json_encode($output);
如果有人想在您回显某个结果后停止执行,请使用php的exit方法。它将像return关键字一样工作

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

我也这么认为,但警报(数据)突然出现为空。我知道PHP中的$output不是null。我将尝试textStatus。使用success:function(data){alert(data)}alerts null。如果
$output
是一个数组,您将如何返回该数组?如果
$output
是一个数组,那么使用
json_encode
所以:
echo json_encode($output)
或执行
打印($var)
,但是,如果您想返回json,那么将其作为json对象来获取会更好,我相信,我刚刚看到了这一点,还没有尝试过<代码>回音返回值对我从Python来的时候是完全陌生的。
$output = some_function();
  echo $output;
exit;