【发布时间】:2017-07-11 01:17:23
【问题描述】:
我有一个带有复选框的表单,用于从 mysql 中选择数据。如果用户这样做,我还希望复选框保持选中状态。除此之外,这些复选框是从 mysql 选择生成的。每个用户根据他们的权限级别等有不同的复选框。
所以我得到了这段代码:
<form method="post" id="someselect">
<?php
function checked() {
if (in_array("somestring", $_SESSION['specificvalue'])) {
return "checked";
};
}
$i = 0;
while ($row = $result->fetch_assoc()) {
echo "<input id='specificvalue' type='checkbox' " . checked() . " name='specificvalue[]' value='" . $row['specificvalue'] . "'>" . $row['longvalue'] . "<br>";
};
mysqli_close($con);
//$_SESSION['specificvalue']=implode("','",$specificvalue);
$_SESSION['specificvalue'] = $specificvalue;
?>
<input type="submit" value="Submit">
</p>
</form>
它可以工作,生成用户特定的复选框,function checked() 也可以与exeption that 一起使用,而不是in_array("somestring", $_SESSION['subunit']),我想使用in_array($row['subunit'], $_SESSION['subunit']),这根本不起作用。我很想知道为什么或想出一个更好的解决方案。这样做的目的是生成复选框列表,并且已经检查了之前存储在会话变量中的复选框。
目前,使用此工作代码。如果我有复选框列表并且我选中了specificvalue“somestring”的框,则生成复选框表单时将选中所有复选框。
我想我可以使用 jquery 来解决这个问题,但谷歌给了我不同类型的解决方案,这些解决方案不能用于我的。我也无法手动编写复选框,因为它们总共有大约 70 个,并且它们随时间变化。我希望在更新 mysql 数据库时自动填充它们。
【问题讨论】:
-
没有。有很多包含在这个问题中没有包含在这个问题中。会话和所有变量都可以正常工作。唯一的问题是如何通过使用 while 循环生成的每个复选框行正确保留检查的值
-
会话已经开始
-
几乎,而不是checked = 'checked' 我只是检查了。它似乎有效,但并没有完全选中所有复选框
-
我想通了。起初它向我显示了 post 的值,第二次显示了 session 变量的值。无论如何,我认为这为我指明了正确的方向,所以谢谢
-
niceone,有人提出了一些建议,然后将其删除。现在我在自言自语
标签: php jquery mysql session checkbox