我试图保存$_SESSION数据以保持页面刷新时选中的值,我已经编写了一些代码,但我遗漏了一部分。
会话代码:
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>为了进行测试,我在隐藏输入中回显$_SESSION['value']['memory_0'] && $_SESSION['value']['memory_1'],它们正确返回,如果检查输入,类为1,如果未选中,类为0。
我不确定是否它=1然后回显checked="checked"的最佳方式
我的粗野尝试:
<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"';} ?> />这将返回一个错误“不能使用标量值作为数组”,这一点我不喜欢这样写。
因此,对于所有给定的信息,如果我的值=1返回checked="checked",那么最好的编写方式是什么?
发布于 2013-08-08 02:54:37
这将使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.' />';
}然后,不要为每个复选框写出<input ... <?php ... ?> ... />,只需使用
<?php checkbox(0); ?>
<?php checkbox(1); ?>发布于 2013-08-08 02:57:18
您的短暂尝试有一个错误:
而不是<?php if($_SESSION['value']['memory_0'] = 1),尝试<?php if($_SESSION['value']['memory_0'] == 1)
https://stackoverflow.com/questions/18117117
复制相似问题