[英]Printing session multiple value of a checkbox array in php
我正在為多個產品創建一個網站,其中有4個屬性正面,背面,側面和插件(這是收費的),下面創建了一個簡單的演示代碼。
屬性頁(prop.php)
<html>
<head>
</head>
<body>
YOU HAVE CHOOSED <h1>PRODUCT 1</h1>
<h2>CHOOSE PRODUCT PROPERTIES</h2>
<form action="cartpage.php" method="post">
ORDER ID <input type="text" id="uid" name="oid" value="<?php echo uniqid(); ?>"><br><br>
<label>FRONT SELECTION</label><br>
<input type="radio" name="front_sel" value="front_1">FRONT 1<br>
<input type="radio" name="front_sel" value="front_2">FRONT 2<br>
<input type="radio" name="front_sel" value="front_3">FRONT 3<br>
<input type="radio" name="front_sel" value="front_4">FRONT 4<br><br>
<label>BACK SELECTION</label><br>
<input type="radio" name="back_sel" value="back_1">BACK 1<br>
<input type="radio" name="back_sel" value="back_2">BACK 2<br>
<input type="radio" name="back_sel" value="back_3">BACK 3<br>
<input type="radio" name="back_sel" value="back_4">BACK 4<br><br>
<label>SIDE SELECTION</label><br>
<input type="radio" name="side_sel" value="side_1">SIDE 1<br>
<input type="radio" name="side_sel" value="side_2">SIDE 2<br>
<input type="radio" name="side_sel" value="side_3">SIDE 3<br>
<input type="radio" name="side_sel" value="side_4">SIDE 4<br><br>
<label>ADD ON SELECTION</label><br>
<input type="checkbox" name="addon_sel[]" value="addon_1">THIS ADDON COST Rs 50 EXTRA<br>
<input type="checkbox" name="addon_sel[]" value="addon_2">THIS ADDON COST Rs 20 EXTRA<br>
<input type="checkbox" name="addon_sel[]" value="addon_3">THIS ADDON COST Rs 0 EXTRA<br>
<input type="checkbox" name="addon_sel[]" value="addon_4">THIS ADDON COST Rs 10 EXTRA<br><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
php購物車頁面(cartpage.php)
<?php
if(isset($_POST['submit']))
{
$oid = $_POST['oid'];
$front = $_POST['front_sel'];
$back = $_POST['back_sel'];
$side = $_POST['side_sel'];
$addon = $_POST['addon_sel'];
$cart = array (
'front' => $front,
'back' => $back,
'addon' => $addon,
'side' => $side
);
$_SESSION['oid'] = $oid;
$_SESSION['cart'][$oid] = $cart;
echo "ITEMS IN YOUR CART<br>";
foreach ($_SESSION['cart'] as $item) {
echo $item['front']."<br>";
echo $item['back']."<br>";
echo $item['side']."<br>";
echo $item['addon']."<br>";
if ($item['addon'] == 'addon_1')
{
echo "TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 50 = Rs. 550/-" ;
}if ($item['addon'] == 'addon_2')
{
echo "TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 20 = Rs. 520/-" ;
}if ($item['addon'] == 'addon_3')
{
echo "TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 0 = Rs. 500/-" ;
}if ($item['addon'] == 'addon_1')
{
echo "TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 10 = Rs. 510/-" ;
}
}
}
?>
第一:在上面的代碼中,每當用戶檢查多個復選框時,它只需要發布一個復選框。
其次,我想在會話中使用多個復選框來創建購物車系統並為其指定價格。 希望你能理解這個問題請幫助我,請告訴我任何其他方式做同樣的事情。 謝謝。
您的復選框都具有相同的name="addon_sel"
。 PHP的多個字段具有相同名稱的默認行為是僅保存LAST遇到的值。 使用name="addon_sel[]"
(注意[]
)告訴PHP創建一個接收值的數組。
我對您的代碼進行了一些更改以使其正常工作,這些更改由箭頭指向( //<=================
):
<?php
session_start(); //<=================
if(isset($_POST['submit']))
{
$oid = $_POST['oid'];
$front = $_POST['front_sel'];
$back = $_POST['back_sel'];
$side = $_POST['side_sel'];
$addon = $_POST['addon_sel']; // ADDONS ARRAY.
$cart = array ( 'front' => $front,
'back' => $back,
'addon' => $addon,
'side' => $side
);
$_SESSION['oid'] = $oid;
$_SESSION['cart'][$oid] = $cart;
echo "ITEMS IN YOUR CART<br>";
foreach ($_SESSION['cart'] as $item) {
echo $item['front']."<br>";
echo $item['back']."<br>";
echo $item['side']."<br>";
print_r( $item['addon'] )."<br>"; //<=================
if ( in_array( 'addon_1',$item['addon'] ) ) //<=================
{
echo "<br/>TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 50 = Rs. 550/-" ;
}if ( in_array( 'addon_2',$item['addon'] ) ) //<=================
{
echo "<br/>TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 20 = Rs. 520/-" ;
}if ( in_array( 'addon_3',$item['addon'] ) ) //<=================
{
echo "<br/>TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 0 = Rs. 500/-" ;
}if ( in_array( 'addon_4',$item['addon'] ) ) //<=================
{
echo "<br/>TOTAL PRICE OF THE PRODUCT IS Rs. 500 + Price of ADDON Rs 10 = Rs. 510/-" ;
}
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.