【问题标题】:How to get JSON data in JQuery from PHP with AJAX [closed]如何使用 AJAX 从 PHP 获取 JQuery 中的 JSON 数据
【发布时间】:2019-08-06 16:00:10
【问题描述】:

如何准备 JSON 数据

            $.post("../../pos/getArticles.php",
                {
                    userid: user
                },
                function(data, status){
                    var objData = JSON.parse(data);
                    for (i in objData){
                        objData[i][0] = "<td><a href='"+objData[i][2]+"'>"+objData[i][0]+"</a></td>";
                    }
                    addDataToArticles(objData);
                    // alert("Data: " + data + "\nStatus: " + status);
                });

我尝试使用 return 和 echo 以及 print_r 关键字和函数来返回 JSON 数组,但它不起作用

用回显返回数组!

echo $MyArticles = array (
 array("articleName1","count1","link1"),
 array("articleName2","count2","link2"),
 array("articleName3","count3","link3"),
 array("articleName4","count4","link4"),
 array("articleName5","count5","link5") 
);

我收到一个错误,php 无法将数组转换为字符串:

<br />
<b>Notice</b>:  Array to string conversion in <b>[...][...]</b> on line <b>3</b><br />
Array

【问题讨论】:

  • PHP 是什么部分...或“不起作用”的部分是什么? data 是否已填充?
  • 首先您应该使用console.log(data); 并向我们展示结果.. 另外您应该在getArticles.php 中提供您的php 代码,就像上面的评论所说的那样。
  • PHP 代码应该使用类似echo json_encode($data); 的内容。并确保它不会产生除此之外的任何其他输出。您可以使用浏览器中的“网络”选项卡查看它返回的所有内容。
  • @MorganFreeFarm php echo $MyArticles = array ( array("articleName1","count1","link1"), array("articleName2","count2","link2"), array("articleName3","count3","link3"), array("articleName4","count4","link4"), array("articleName5","count5","link5") );
  • @MorganFreeFarm 数据不是从服务器获取的。

标签: javascript php json ajax


【解决方案1】:

当你从 php 返回数据到 JS 时,最好的方法是使用json_encode(),这里是基于你的代码的示例:

JS:

$( document ).ready(function() {
                $.post("../../pos/getArticles.php",
                {
                    userid: 1
                },
                function(data, status){
                    var objData = JSON.parse(data);
                    $.each(objData, function( key, val ) { // get arrays
                        console.log(val[0], val[1], val[2]);
                    });
                    //for (i in objData){
                    //    objData[i][0] = "<td><a href='"+objData[i][2]+"'>"+objData[i][0]+"</a></td>";
                    //}
                    //addDataToArticles(objData);
                    // alert("Data: " + data + "\nStatus: " + status);
                });
});

PHP:

<?php

$MyArticles = array (
 array("articleName1","count1","link1"),
 array("articleName2","count2","link2"),
 array("articleName3","count3","link3"),
 array("articleName4","count4","link4"),
 array("articleName5","count5","link5") 
);

echo json_encode($MyArticles); exit;

您可以运行此代码并检查控制台,console.log(val[0], val[1], val[2]) 这一行会返回您想要的所有数据,您可以随意使用。

在这段代码中它返回:

articleName1 count1 link1
articleName2 count2 link2
articleName3 count3 link3
articleName4 count4 link4
articleName5 count5 link5

【讨论】:

    猜你喜欢
    • 2021-11-22
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    相关资源
    最近更新 更多