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

use*_*688 45 ajax jquery

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

这是我的jQuery:

$.ajax({
  type: "POST",
  url: "somescript.php",
  datatype: "html",
  data: dataString,
  success: function() {
    //do something;
    }
});
Run Code Online (Sandbox Code Playgroud)

这是我在服务器上的somescript.php:

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

我是否在服务器端正确执行此操作,以及在ajax调用完成后如何访问返回字符串?

use*_*688 72

我想到了.需要在PHP中使用echo而不是return.

<?php 
  $output = some_function();
  echo $output;
?> 
Run Code Online (Sandbox Code Playgroud)

和jQ:

success: function(data) {
  doSomething(data);
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*ver 16

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

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

完整的签名是success(data, textStatus, XMLHttpRequest),但如果它是一个简单的字符串回来,你可以使用他的第一个参数.与往常一样,请参阅文档以获得完整的解释 :)


DEE*_*PAK 5

基于接受的答案

$output = some_function();
  echo $output;
Run Code Online (Sandbox Code Playgroud)

如果结果是数组,那么使用 json_encode 它将得到 javascript 支持的 json 数组

$output = some_function();
  echo json_encode($output);
Run Code Online (Sandbox Code Playgroud)

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

$output = some_function();
  echo $output;
exit;
Run Code Online (Sandbox Code Playgroud)