2014-12-19 87 views
-2

我想通過會話變量傳遞我的複選框值,如果用戶通過單擊添加更多書籍鏈接返回。我想向他們顯示先前選中的複選框已被選中。我嘗試過chklist.php頁面在會話中存儲複選框值,然後重新選擇複選框,當他們回來添加更多

if(isset($_SESSION['pro'])){ 
echo $_SESSION['pro'];} 

顯示的值類似於1_2_5,它們出現在會話數組中。 這是我的複選框的html代碼。我有大約24個與產品[]相同名稱的複選框。

<name="product[]" type="checkbox" value="1" alt="1607.00" /> 
<name="product[]" type="checkbox" value="2" alt="1607.00" /> 

等 在這裏,我設置我的會議後POST複選框。

$_SESSION['pro'] = implode('_', $_POST['product']); 

in nextpage chkout.php。 如何通過單擊chkout.php中的添加更多書籍鏈接,當用戶回到第一頁(chklist.php)時檢查先前選擇的複選框,任何正文都可以將代碼添加到我的html中。

+1

我沒有看到您的代碼o_o – 2014-12-19 08:06:40

+0

//等等多達24個複選框,並感謝您的快速響應,這是我第一次在堆棧溢出 – Sha 2014-12-19 08:08:52

+1

產品是一個數組,做$ _SESSION ['checks'] = $ _POST [ '產物'];並打印它(與var_dump或print_r)在第一頁,你會看到所有複選框檢查我認爲 – 2014-12-19 08:11:08

回答

1

您可以將產品數組放入會話中,然後以數組的形式訪問它。

當設置:

$_SESSION["products"] = $_POST["product"]; 

在列出的產品,你應該從會話檢查值:

for($i = 0; $i < 24; $i++) { 
    echo '<name="product[]" type="checkbox" value="'.$i.'" alt="1607.00"'; 
    if(in_array($i, $_SESSION["products"])) echo ' checked="checked" '; 
    echo ' />'; 
} 

這是基本的想法和示例代碼。

--UPDATE--

根據您的意見:

形式裏面,我們將打印產品如下:

<?php 
session_start(); 
$session_products = array(); 
if(array_key_exists("products", $_SESSION)) 
{ 
    if($_SESSION["products"] != null) 
    { 
    $session_products = $_SESSION["products"]; 
    } 
} 

<form method="post" action="newtest.php"> 
    <input name="product[]" type="checkbox" value="1" <?php if(in_array("1", $session_products)) echo "checked='checked'"; ?> alt="1607.00" /> 
    <input name="product[]" type="checkbox" value="2" <?php if(in_array("2", $session_products)) echo "checked='checked'"; ?> alt="1848.00" /> 
    <input name="product[]" type="checkbox" value="3" <?php if(in_array("3", $session_products])) echo "checked='checked'"; ?> alt="180.00" /> 
    <input name="product[]" type="checkbox" value="4" <?php if(in_array("4", $session_products)) echo "checked='checked'"; ?> alt="650.00" /> 
    and so on upto 24 ... 
</form> 

在形式值裏面的代碼發佈後,我們會將這些值放入會話中:

<?php 
include("config.php"); 
session_start(); 

if(isset($_POST)) 
{ 
    $_SESSION["products"] = $_POST["product"]; 
} 
?> 
+0

我在這裏複製你的代碼< ?php include(「config.php」); session_start(); ($ i = 0; $ i <24; $ i ++){isset($ _ SESSION ['products'])){ echo'';} }?> – Sha 2014-12-19 09:39:04

+0

這是我的表格

等等upto 24
你能告訴我我在哪裏嗎?需要把我的代碼或任何其他的東西,我可以做輸入字段 – Sha 2014-12-19 09:39:20

+0

@ isa正如你所說,我做了變化的形式, – Sha 2014-12-19 10:30:38