通过php和jquery post返回和解析json数组

通过php和jquery post返回和解析json数组,php,json,jquery-post,Php,Json,Jquery Post,我试图返回从数据库中提取的名称的json数组。我不确定我在这里错过了什么,但它永远不会到达警报电话。返回的数据不必是json,我只是先尝试一下这种方法。它完成了INSERT调用,我知道它正在返回正确的数据集。我的代码怎么了 Javascript function showDB() { $.post('example.php', $('#infoForm').serialize(), function(data) { var json = $.parseJSON(dat

我试图返回从数据库中提取的名称的json数组。我不确定我在这里错过了什么,但它永远不会到达警报电话。返回的数据不必是json,我只是先尝试一下这种方法。它完成了INSERT调用,我知道它正在返回正确的数据集。我的代码怎么了

Javascript

function showDB() {
    $.post('example.php', $('#infoForm').serialize(), function(data) {  
        var json = $.parseJSON(data);
        $.each(json, function(i, item) {
            alert(item);
        });
    }, "json");
}
PHP


您的PHP代码中有一个bug

查找这行代码:

$nameArray[] = "";
$nameArray = array();
$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20;";
while ($row = $mysqli_fetch_array($result)) {
替换到此代码行:

$nameArray[] = "";
$nameArray = array();
$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20;";
while ($row = $mysqli_fetch_array($result)) {

更新 查找这行代码:

$nameArray[] = "";
$nameArray = array();
$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20;";
while ($row = $mysqli_fetch_array($result)) {
替换为这行代码

$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20";
while ($row = mysqli_fetch_array($result)) {
请注意字符串中的分号


再次更新 查找这行代码:

$nameArray[] = "";
$nameArray = array();
$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20;";
while ($row = $mysqli_fetch_array($result)) {
替换为这行代码

$query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20";
while ($row = mysqli_fetch_array($result)) {
mysqli\u fetch\u数组是一个函数。

这里有错误

$nameArray[] = "";
你需要用

$nameArray[] = array();
现在的原因是,在您的代码中,您正在初始化一个没有值甚至没有任何索引的数组,因此这将生成错误。但是如果用
array()
替换它,它将初始化一个数组。
当您将推送值
array_push($nameArray,$row['name'])
将把数组中的值推到索引0上,然后推到索引1上,依此类推。

不使用
警报
,而是使用
控制台。日志
查看是否有错误?让我们知道output.POST 500(内部服务器错误),响应为0您是否能够自行执行php代码?js代码中变量json上的Console.log()。它返回什么?@BestProgramMerinthWorld它回显“0”,因此我创建数组或查询的方式肯定有问题。当我在mysqladmin中运行相同的查询时,它返回正确的结果集。当从我的php文件调用它时,是否有什么东西会导致我得到不同/不正确的结果集?不,你可以在php中这样做,你只会得到
$nameArray=array(0=>“”)
,但这不是导致500的原因。你使用的是哪个php版本?函数
json\u encode
仅适用于PHP5.2及更高版本。就是这样。对我来说,总是这样的小事。非常感谢。