Re: [請益] SESSION接收不到參數的問題~
※ 引述《jami520 (我的生命因你而發光)》之銘言:
: 我做某個購物車,此頁面有四個隱藏欄位
: F_ID:商品主鍵編號
: F_Name:商品名稱
: F_Price:商品價格
: F_Picthum:商品圖片路徑
: 一個下拉選單
: buyNum:購買數量
: 程式碼最前面利用javascript的警告視窗顯示購買的數量,這是正常的
: 但存到SESSION就錯誤了,怎麼選都只有一個
: 其他隱藏欄位的資料存到SESSION都正確
: 不知道這是哪邊的問題呢?謝謝~
: <script>
: window.alert("<?php echo $_POST['buyNum'];?>")
: </script>
: <?php
: session_start();
: if(isset($_SESSION['Cart'])){
: if(in_array($_POST['F_ID'],$_SESSION['Cart'])){
: header('Content-type: text/html; charset=utf-8');
: die("<a href=javascript:history.back(-1)>商品已經在購物車內</a>");
: }
: }
: $_SESSION['Cart'][]=$_POST['F_ID'];
: $_SESSION['Name'][]=$_POST['F_Name'];
: $_SESSION['Price'][]=$_POST['F_Price'];
: $_SESSION['Pic'][]=$_POST['F_Picthum'];
: $_SESSION['Quantity'][]=$_POST['buyNum'];
session_start() 應該在網頁輸出前先呼叫. 改成:
<?php
session_start();
?>
<script>
window.alert("<?php echo $_POST['buyNum'];?>")
</script>
<?php
...
?>
另外, 上面把同一個產品的屬性拆到不同陣列的存法並不建議, 除非有必要,
不然以下的寫法會更好:
$_SESSION['Cart'][$_POST['F_ID']]=array('ID'=>$_POST['F_ID'],
'Name'=>$_POST['F_Name'],
'Price'=>$_POST['F_Price'],
'Pic'=>$_POST['F_Pic'],
'Quantity'=>$_POST['buyNum']);
php的array用法很活. 即可當做一般陣列, 亦可當成是物件的屬性集合來用.
上述的用法同時用上了: $_SESSION['Cart']是'產品陣列',$_POST['F_ID']是
key, 而array('ID'=>...)把產品的屬性內聚在一塊, 而不用拆散在不同的
屬性陣列當中.
: header("Location:showcart.php");
: ?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.84.3
※ 編輯: bobju 來自: 211.74.84.3 (02/20 12:44)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
0
18