繁体   English   中英

在 php 中显示来自 javascript 的数组

[英]Displaying array from javascript in php

我有一个我在 javascript 中制作的数组,有 2 列 id 和数量

items.push({
            id : id,
            quantity: quantity
        })

然后我使用 stringify 将其变成 jsonstring,如图所示

var jsonString = JSON.stringify(items);
    $.ajax({
            type: "POST",
            url: "order_process.php",
            data: {data : jsonString}, 
            cache: false,

            success: function(){
            
                window.location.href = "order_confirmation.php";
                

            
            }
});

然后我将其发布到 php 并使用 json_decode 将其转换为 php 数组。 如图所示

$_SESSION['cart'] = json_decode( $_POST['data'] );

问题是当我在 php 中使用 print_r() function 时,这是我得到的 output

Array ( 
    [0] => stdClass Object ( [id] => 12 [quantity] => 1 ) 
    [1] => stdClass Object ( [id] => 13 [quantity] => 1 ) 
    [2] => stdClass Object ( [id] => 10 [quantity] => 1 ) 
)

我想要的output如下图,但是我不知道怎么格式化所以得到如图

ID 数量
12 1
13 2

任何帮助将非常感激

使用true作为json_decode()的第二个参数来获取数组而不是 object。 然后循环创建你的表:

$_SESSION['cart'] = json_decode( $_POST['data'], true );
echo '<table><tr><th>ID</th><th>Quantity</th></tr>';
foreach ($_SESSION['cart'] as $item) {
    echo '<tr><td>'.$item['id'].'</td><td>'.$item['quantity'].'</td></tr>';
}
echo '</table>';

您在 JS 中所做的并不是创建与在 PHP 中相同的关联数组。

您实际上正在执行 JSON 解码时得到的结果:您推送(附加到数组)具有两个属性的 object(大括号)。

您可以对 PHP 中的 output 阵列执行的操作是:

  • 在 PHP 中使用您所拥有的并使用对象进行迭代
  • 通过两个常规 JS arrays - 一个带有 ID,一个带有数量

无论如何,您都需要知道如何使用 HTML 包装数据,这样您才能真正显示表格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM