【问题标题】:Store checkbox in PHP Session and echo it在 PHP Session 中存储复选框并回显它
【发布时间】:2019-06-29 07:53:51
【问题描述】:

我正在尝试将一种形式的复选框存储到会话变量中,以便可以在不同的页面上回显它。 例子: 用户选中第 1 页的前两个复选框。页面重定向到打印“apple”和“banana”的第 2 页。

表格:

<form action="" method="post">
    <input name="crate[]" value="apple" type="checkbox">
    <input name="crate[]" value="banana" type="checkbox">
    <input name="crate[]" value="potato" type="checkbox">
    <input type="submit" name="Submit" value="submit">
</form>

【问题讨论】:

  • 是的,你是对的...print_r($_POST['crate']); 然后$_SESSION['checkboxes'] = $_POST['crate'];
  • 您是要存储用户选中的复选框,还是要存储此表单的 HTML 代码?不太清楚你到底是什么意思;还有,实际的问题是什么。请阅读How to Ask,然后相应地编辑您的问题。
  • 如果你只是想在页面之间保存数据,你有很多选择(有利有弊):cookies、localStorage、DB(直接或通过会话)。请更明确。当然我猜你想保存选中的复选框数据。
  • 我已经更新了我的问题。我猜这是一个非常简单的解决方案。
  • 向会话写入内容的代码在哪里?究竟是什么不工作?

标签: php forms variables session checkbox


【解决方案1】:

提交表单后,需要检查post是否为空,然后在session变量中赋值

$_SESSION['VARIABLE_NAME'] = empty($_POST['crate']) ? [] : $_POST['crate'];

在第二页中,还要检查会话变量是否存在且不为空

if(!empty($_SESSION['VARIABLE_NAME'])){
   print_r($_SESSION['VARIABLE_NAME']);
}

注意:-不要忘记在页面顶部写session_start();并检查this link

【讨论】:

  • 它仍然不打印。当我从 if 语句中取出 print_r 行时,它只是打印一个空数组。我不确定为什么它没有将值传递到第 1 页中的数组中
  • 你打印$_POST['crate']??如果它包含值,则必须设置 $_SESSION['VARIABLE_NAME']。也检查这个链接。 stackoverflow.com/questions/3181149/…
  • 如果我在第 2 页打印 $_POST['crate'] 它会给我一个错误。如果我 print_r($_SESSION) 它会在 VARIABLE_NAME 中打印一个空数组。它认为它没有在第 1 页正确传递到数组中
  • 希望您设置了正确的表单操作。检查此链接1:guru99.com/php-forms-handling.html 和链接2:stackoverflow.com/questions/20184670/…
猜你喜欢
  • 1970-01-01
  • 2012-01-25
  • 2013-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
相关资源
最近更新 更多