如何使用AJAX从PHP获取JQuery数据[关闭]

如何使用AJAX从PHP获取JQuery数据[关闭]

问题描述:

How to prepare JSON data

            $.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 + "
Status: " + status);
                });

I tried with return and echo and print_r keywords and functions to return JSON array but its not working

return array with echo!

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

The best way is to use json_encode() when you return data from php to JS, here is example based on your code:

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 + "
Status: " + 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;

You can run this code and check console, this row console.log(val[0], val[1], val[2]) returns you all data you want and you can use as you wish.

In this code it returns:

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