Php 是否从复选框数据列表中保存$\会话?

Php 是否从复选框数据列表中保存$\会话?,php,Php,我试图保存$\u会话数据以保持页面刷新时的选中值,我已经编写了一些代码,但我缺少一部分 会话代码: session_start(); if(isset($_POST['submit'])) { //user posted variable $checks = $_POST['personalization_result']; if(isset($_POST['personalization_result'])) { $_SESSION['value']

我试图保存$\u会话数据以保持页面刷新时的选中值,我已经编写了一些代码,但我缺少一部分

会话代码:

 session_start();
 if(isset($_POST['submit'])) {

   //user posted variable
   $checks = $_POST['personalization_result'];


   if(isset($_POST['personalization_result'])) {   
    $_SESSION['value'] = $_POST['personalization_result']; } 
   else {
    $_SESSION['value'] = '';  
   }
 }
 <form action="" method="post" id="question-form"> 

     <input type="hidden" name="submit" value="1">

       <li>
       <input name="personalization_result[memory_0]" type="hidden"  class="<?php echo $_SESSION['value']['memory_0'] ?>" value="0"  />
       <input name="personalization_result[memory_0]" type="checkbox" value="1" id="personalization_result_memory_0" />
       </li> 

       <li>
       <input name="personalization_result[memory_1]" type="hidden"  class="<?php echo $_SESSION['value']['memory_1'] ?>" value="0"  />
       <input name="personalization_result[memory_1]" type="checkbox" value="1" id="personalization_result_memory_1" />
       </li>

      //There are many checkboxes, this is just two for demo purposes

     <input class="submit" type="submit" value="Send" />

 </form>
<input name="personalization_result[memory_0]" type="hidden"  class="<?php echo $_SESSION['value']['memory_0'] ?>" value="0"  />
<input name="personalization_result[memory_0]" type="checkbox" value="1" id="personalization_result_memory_0" <?php if($_SESSION['value']['memory_0'] = 1) {echo 'checked="checked"';} ?> />
表格代码:

 session_start();
 if(isset($_POST['submit'])) {

   //user posted variable
   $checks = $_POST['personalization_result'];


   if(isset($_POST['personalization_result'])) {   
    $_SESSION['value'] = $_POST['personalization_result']; } 
   else {
    $_SESSION['value'] = '';  
   }
 }
 <form action="" method="post" id="question-form"> 

     <input type="hidden" name="submit" value="1">

       <li>
       <input name="personalization_result[memory_0]" type="hidden"  class="<?php echo $_SESSION['value']['memory_0'] ?>" value="0"  />
       <input name="personalization_result[memory_0]" type="checkbox" value="1" id="personalization_result_memory_0" />
       </li> 

       <li>
       <input name="personalization_result[memory_1]" type="hidden"  class="<?php echo $_SESSION['value']['memory_1'] ?>" value="0"  />
       <input name="personalization_result[memory_1]" type="checkbox" value="1" id="personalization_result_memory_1" />
       </li>

      //There are many checkboxes, this is just two for demo purposes

     <input class="submit" type="submit" value="Send" />

 </form>
<input name="personalization_result[memory_0]" type="hidden"  class="<?php echo $_SESSION['value']['memory_0'] ?>" value="0"  />
<input name="personalization_result[memory_0]" type="checkbox" value="1" id="personalization_result_memory_0" <?php if($_SESSION['value']['memory_0'] = 1) {echo 'checked="checked"';} ?> />
这会返回一个错误“不能将标量值用作数组”,我不喜欢这样写


因此,对于所有给定的信息,如果my value=1返回
checked=“checked”

这将使您的PHP更干净、更具可扩展性,那么最好的编写方法是什么呢

在顶部使用此功能:

session_start();
function checkbox($id)
{
    $isChecked = '';
    if (isset($_SESSION['value']['memory_'.$id]))
    {
        $isChecked =  ($_SESSION['value']["memory_".$id] == 1) ? 'checked="checked"' : '';
    }
    echo '<input name="personalization_result[memory_'.$id.']" type="checkbox" ';
    echo 'value="1" id="personalization_result_memory_'.$id.'" ';
    echo $isChecked.' />';
}
session_start();
函数复选框($id)
{
$isChecked='';
if(isset($\会话['value']['memory.'$id]))
{
$isChecked=($\u会话['value'][“内存”..$id]==1)?'checked=“checked”:'';
}
回声';
}
然后不写
您的短暂尝试出现错误:


与其说
听起来像个白痴,不如说
=
不应该是
=
?没有好的眼睛,实际上效果很好。是的,我刚刚试过,它很有效,现在有更好的方法来清理它吗?IDK关于
$somevariable=$\u SESSION['value']
那么
如果($somevariable['memory\u 0']==1)
能稍微清理一下它呢?关于更干净的方法有什么建议吗?我会这样使用:
它比完整的代码更干净=)是的,我在插件中见过这个方法,那么
$somevariable=$\u SESSION['value'==1
我认为这是有效的,并且将其最小化了好吧,理解=)是的,我同意,我只是简化了它,因为我有很多复选框,并且对我来说在变量中存储
$\u会话['value']
是有意义的。。谢谢你指出==我从来没有认真考虑过我需要阅读更多关于如何正确使用的差异==我更喜欢避免使用javascript,当PHP可以处理我的需要时,只要javascript被禁用。@MichaelJosephAubry查看新的答案,它应该会为你节省大量重复的代码:)嘿,刚刚看到你的答案,感谢您抽出时间让我仔细想想:)内存也很独特,类似于
$id
要将其转化为更动态的解决方案,如果我将其传递到类似
函数复选框($type,$id)
的函数中,那么将
[“内存”..$id]
缩短为
[$id]
就更容易了,然后做
,因为它们看起来总是一个字符串,
实际上更长。。