我有一个表单,用于从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数据库更新时让它们自动填充。
没有。这个问题上没有包括这个id上的一串包含。会话和所有的变量工作得很好。唯一的问题是如何通过使用while循环生成的每个复选框行正确地保留选中的值 – Gusmar
会话几乎已经开始 – Gusmar
,而不是checked ='checked'我刚刚检查。它似乎工作,但并不完全保持所有选中的复选框 – Gusmar