簡體   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