簡體   English   中英

在php中打印會話復選框數組的多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM