2014-12-19 35 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

相关问题