【问题标题】:Carrying a checkbox selection in a session在会话中携带复选框选择
【发布时间】:2012-01-04 13:24:10
【问题描述】:

如何将选择包装在一个可以跨越多个页面的会话中?

这就是我所拥有的:

session_start();


<form action="checkbox-form.php" method="post">
Select your options<br />
<input type="checkbox" name="options[]" value="A" />A<br />
<input type="checkbox" name="options[]" value="B" />B<br />
<input type="checkbox" name="options[]" value="C" />C<br />
<input type="submit" name="formSubmit" value="Submit" />
</form>


var_dump($_POST['options']);


foreach($_POST['options'] as &$option){
  mysql_real_escape_string($option);
}


$insert = "INSERT INTO submitted (statuses)       
VALUES ('". implode(",", $_POST['options']) ."')";      

$query = mysql_query($insert) or die ("Error: ".mysql_error());  

那么,我如何将$_POST['options']; 放入会话中。我试过做

$_SESSION['options'] = mysql_real_escape_string($_SESSION['options']);

当我这样做时,我得到“数组”作为结果。

【问题讨论】:

    标签: php session checkbox


    【解决方案1】:

    您将数组存储在会话变量中并抱怨它返回给我一个数组!!!

    当然它会返回一个数组...访问相同用途的特定键..

    $_SESSION['选项'][0] $_SESSION['选项'][1] $_SESSION['options'][2]

    与表单上的 A、B、C 复选框连续对应...

    【讨论】:

    • 这是我不明白的。 0、1、2是什么意思??
    • 这意味着您的所有 3 个复选框值都存在于会话中。如果您想检查 A 复选框的值,请执行以下操作:$_SESSION['options'][0]
    • 伙计,没有人愿意在会话中携带所有 30 个复选框...为什么您需要跨页面的所有 30 个信息...只存储所需的复选框信息..
    【解决方案2】:

    简单地做

    session_start();
    $_SESSION['options'] = $_POST['options'];
    

    您可以通过

    访问复选框值
    $_SESSION['options'][$i] where $i <count($_SESSION['options'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多