首页 > 解决方案 > JSON编码无输出

问题描述

我试图寻找不同的方法来让这个 json 正确输出,但我不确定我是否访问了 php/或成功函数 value.pTitle 中的正确变量,以及如何获得对其他值的访问权限例如 artTitle 我在某个地方失败了,不知道在哪里或为什么。UPDATE修复了添加的 php 文件和数组 $data[]。

这是我的 php 代码。

$sqlPAQuery = "SELECT pTitle, GROUP_CONCAT(artTitle) AS 
artTitle 
FROM p 
JOIN art ON art.pId = p.pId 
GROUP BY pTitle";

if ($result=mysqli_query($conn,$sqlPAQuery))
{

$data = []; 
while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
 {
    $data[] = $row;
 }
 echo json_encode($data);
}

这是行的 php 编码的结果:
[{"pTitle":"ent","artTitle":"11,12"},{"pTitle":"pro","artTitle":"10"}, {"pTitle":"sports","artTitle":"1,13"}]

这是html代码:

<h3>Output: </h3>
<div id="output"></div>


<script id="source" language="javascript" type="text/javascript">
$(document).ready(function() {
$.ajax({ 
type: "POST",   
  url: 'Data.php',                            
  data: "",                        
  dataType: 'json',                      
  success: function(data)          
  {
  $.each(data, function(index, value) {
     var pageTitle = value.pTitle;           //get name

   $('#output').append("<b>pageTitle: </b>"+pageTitle+"<br/>");
  } 
});
});

输出应该是:

页面标题: ent

页面标题:

页面标题:运动

修复了 PHP 文件的工作原理

标签: phpmysqljsonajax

解决方案


如果你想像这样处理 json,这就是你需要做的:

    if ($result=mysqli_query($conn,$sqlPAQuery)) {
        $data = []; 
        while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
        {
            $data[] = $row;
        }
        echo json_encode($data);
    }

推荐阅读