[英]Data from a SQL database to an array for a shopping cart
我正在嘗試將從 SQL 數據庫中檢索到的數據傳遞到$_SESSION
數組,以便向用戶顯示購物車。 我認為信息實際上並沒有被傳遞,程序最終顯示但它給了我空白字段。 作為參考,我正在嘗試通過多個 PHP 文件傳遞數據。 此外,一旦我傳遞了信息,我不確定我將如何循環所說的 $_SESSION 數組用戶添加多個項目。
我不確定問題是通過我的index
的include()
還是我在product_list
中的form action
。 但是在某個地方,要么數據沒有通過,要么它不像我認為的那樣工作。
這是我的product_list
中最初發送數據的代碼
foreach ($products as $product) : ?>
<tr>
<td><?php echo $product['productID']; ?></td>
<td><?php echo $product['productName']; ?></td>
<td class="right"><?php echo $product['price']; ?></td>
<td><form action="../Cart/index.php" method="post">
<input type="hidden" name="action"
value="add_product">
<input type="hidden" name="product_name"
value="<?php echo $product['productName'];?>">
<input type="hidden" name="product_price"
value ="<?php echo $product['price'];?>">
<input type="submit" value="Add to Cart">
<?php endforeach;
這是我的index
中包含購物車的代碼
if ($action == 'add_product')
{
include('../Cart/index.php');
}
這是我在購物車路徑中的```索引中的代碼
$action = 'add_to_cart';
if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
}
if($action == 'add_to_cart')
{
$cart_product_name = filter_input(INPUT_GET, 'product_name');
$cart_product_price = filter_input(INPUT_GET, 'product_price', FILTER_VALIDATE_FLOAT);
$product = array('price' => $cart_product_price, 'name' => $cart_product_name);
$_SESSION['cart'][] = $product;
include('cart_view.php');
}
這就是$_SESSION
數組應該顯示的地方
<main>
<h1>Your Cart</h1>
<link rel='stylesheet' type="text/css" href="main.css">
<?php
print_r($_SESSION['cart'][0]);
?>
實際顯示的是這個Array ( [price] => [name] => )
我看到的第一個問題是您的輸入名稱不正確。 每個產品名稱輸入當前都是 name="product_name",product_price 也是如此。 您需要將這些作為數組傳遞,或者每個都有自己的唯一鍵。 否則,您將獲得 product_name 和 product_price 的一個帖子值 - 這將是表單中帶有這些名稱的最后輸入的任何內容。
您可以通過 name="product_name[]" 將它們作為數組傳遞,然后您的帖子將包含所有這些值的數組,按照它們在表單中出現的順序。
接下來,您說您的 output 當前是 Array ( [price] => [name] => )。 這向我表明您的 session 實際上正在工作,因為您在該數組中有鍵。 所以實際上設置 session 不是問題。 那么你 go 回到設置 session 的位置,並看到你在 filter_input 參數中使用 INPUT_GET - 但你正在接收 POST 值。 您的參數不應該是 INPUT_GET,而應該是 INPUT_POST。
一旦你把所有的東西都弄清楚了,你仍然會遇到問題,因為 product_name 和 product_price 的輸入將是 arrays 具有多個值。 您需要遍歷它們以組裝設置為 session 的最終數組。 我將把它留給你去探索,因為這看起來與你當前在 add_to_cart 操作中所做的完全不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.