【问题标题】:how to Receive JSON data sent by ajax in PHP如何在PHP中接收ajax发送的JSON数据
【发布时间】:2022-01-02 12:17:15
【问题描述】:

我有想要发送到后端的数据,它看起来像

function lihat(){
    let id = "12345678";
    let profile = [{name:"dave", department : "Engginering"},
                   {name:"Tedd", department : "Engginering"}]
    $.ajax({
        type:'POST',
        url:'pages/dashboard/dashboard_be.php'
        data:{
            cekload  : true,
            keys     : id,
            dataList : profile 
        },
        success:function(data){
            console.log(data);
        }
   })

问题,如何在php脚本中接收ajax发送的所有数据 这是我尝试过的

    $id      = $_POST['keys'];
    $cekload = $_POST['cekload'];
    $data    = json_decode($_POST['dataList'];);

   //I wanna parsing the dataList object and then loop it, how to make it ?

谢谢,之前

【问题讨论】:

  • 我不知道,应该是什么?
  • $_POST['dataList'] 不是 JSON,它是一个数组。
  • var_dump($_POST["dataList"]); 将向您展示数据结构。它通常会通过foreach ($_POST["dataList"] as $employee) echo $employee["name"];等访问
  • 如果你真的想要 JSON,请使用dataList: JSON.stringify(profile)

标签: javascript php jquery json ajax


【解决方案1】:

如果您尝试发送/接收 javascript 对象,则需要在发送之前将对象转换为字符串,然后在读取之前将其解码回 php(可能是数组)。

<script>
    let id = "12345678";
    let profile = [{name:"dave", department : "Engginering"},
                   {name:"Tedd", department : "Engginering"}]
    $.ajax({
        type:'POST',
        url:'pages/dashboard/dashboard_be.php',
        data:{
            cekload  : true,
            keys     : id,
            dataList : JSON.stringify(profile) 
        },
        success:function(data){
            console.log(data);
        }
   });
</script>

PHP 代码:

<?php 
$id = $_POST['keys'];
$cekload = $_POST['cekload'];
$data = json_decode($_POST['dataList'], true);

echo $id;
echo $cekload;
print_r($data);
?>

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2017-05-31
    • 2014-07-10
    相关资源
    最近更新 更多