PHP:如何从 $.post 请求中返回数据作为响应?

4
我将为您翻译编程相关内容。以下是需要翻译的文本:

我正在尝试使用jQuery创建一个简单的发布函数。输入是客户的姓名,响应是其信息(地址、电话、年龄等)。到目前为止,我已经得到了这个:

脚本:

$(document).ready(function(){
    $("#getClientInfo").on('click', function(){
        $.post("getClientInfo.php", {
            name: $('#name').val()
        }) .done(function(data){
            console.log(data);
        }) .fail(function(xhr){
            errorShow(xhr.responseText);
        })
    });

PHP:

$connection = include('dbConnection.php');
$name = $_POST['name'];
$query = mysqli_query($connection, "SELECT * FROM clients WHERE name = 
    $name");
$result = mysqli_fetch_array($query);
return $result;

我知道这很简单,没有实现异常或防止SQL注入,但现在,我只想用.done()函数在控制台中打印出结果数组。然而,它没有返回任何响应。
有什么想法吗?提前感谢您。
编辑:我希望数组成为请求的响应,因此在Chrome中显示如下: Picture

将 return $result; 替换为 echo implode(", ", $result); 然后看看是否符合您的需求。 - Ylber Veliu
1
@MrGlass 如果你要回答问题,请将其放在答案部分。评论用于讨论或请求澄清。 - Mike
1个回答

4
你的PHP文件没有输出是因为你的脚本中没有产生任何输出的代码。
return手册页面来看:
如果在全局作用域中调用,则当前脚本文件的执行将结束。如果当前脚本文件已被包含或需要,则控制权将返回到调用文件。此外,如果当前脚本文件已被包含,则给定给 return 的值将作为include调用的返回值返回。
所以return 不会产生输出,但会将一个值赋给调用函数的东西:
function getSomething() {
    return 'something';
}
$something = getSomething();

或者将值分配给包含另一个文件的任何内容。
index.php:
<?php
$value = include('otherpage.php');
// $value == 'hello'

otherpage.php:

<?php
return 'hello';

相反,你需要做类似这样的事情:

echo json_encode($result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接