我正在學習PHP並試圖製作一個簡單的購物車/處理腳本。使用PHP POST數組數據創建收據
我已經創建了項目精車,但我有我的收據顯示信息時,用戶承諾在他們的車購買項目(S)的麻煩。
爲了節省空間/時間我已經遺漏了我的項目清單和車的一代,他們可以發現here如果你需要它。
下面是數據發佈到我的checkout.php腳本 cart.php的PHP(更新以反映變化)
<?php
session_start(); ?>
<form name="cart" id="cart" action="checkout.php" target='_blank'
method='post'>
<h1>Your Cart:</h1>
<table>
<tr>
<td><span class='title'>ID</span></td>
<td><span class='title'>Product</span></td>
<td><span class='title'>Price</span></td>
</tr>
<?php
// Set a default total
$total = 0;
foreach ($_SESSION['cart'] as $cartid) {
?>
<tr>
<td width="20%">
<?php echo $cartid; ?> <input type="hidden" name="id[]"
value="<?php echo $cartid; ?>">
</td>
<td width="100%">
<?php echo $title?>
<input type="hidden" name="title[]" value="<?php echo $title; ?>">
</td>
<td width="100%">$<?php echo $price;?>
<input type="hidden" name="prices[]" value="<?php echo $price; ?>">
</td>
</tr>
<?php
$total += $price;
} // end foreach
?>
<tr>
<td>Total</td>
<td></td>
<td>$<?php echo $total; ?></td>
</tr>
</table>
<input type="submit" value="Buy" class="submit-button" />
</form>
checkout.php(更新以反映變化)
<table>
<tr>
<th>ID</th>
<th>Product</th>
<th>Price</th>
</tr>
<?php
foreach($_POST['ids'] as $id) {
echo "
<tr>
<td>$id</td>
<td>$_POST['titles'][$id]</td>
<td>$_POST['prices'][$id]</td>
</tr>
";
}
?>
<tr>
<td>Total</td>
<td></td>
<td>$</td>
</tr>
</table>
我似乎無法得到foreach循環讀取項目編號,名稱或價格。我可以看到數組正在使用print_r($ _ POST)傳遞;但每個索引項作爲一個新的數組項e.g:
Array
(
[checkout] => Array
(
[0] => A123
[1] => Item1
[2] => 1000
[3] => Z999
[4] => Item999
[5] => 9999
)
)
我如何可以張貼在更有意義的方式,即關聯數組的信息。然後使用該關聯的數組在信息格式中顯示錶格?
預計輸出
<table>
<tr>
<th>ID</th>
<th>Product</th>
<th>Price</th>
</tr>
<tr>
<td>A123</td>
<td>Item1</td>
<td>$1000</td>
</tr>
<tr>
<td>Z999</td>
<td>Item999</td>
<td>$9999</td>
</tr>
<tr>
<td>Total</td>
<td></td>
<td>$10999</td>
</tr>
</table>
N.B:這僅僅是一個學習鍛鍊,消毒不是必需的陣列,也沒有SQL。
編輯:更新,以反映@Obsidian年齡的建議,得到解析錯誤,現在
你將不得不從基於ID的地方得到的價格和標題... –