我有此代码:
<?php
if(isset($_POST['submit'])) {
if(isset($_POST['sharks'])) {
$_SESSION['value'] = $_POST['sharks'];
} else {
$_SESSION['value'] = '';
}
}
?>
<form action="" method="POST">
<?php
echo '<input name="sharks" type="checkbox" value="1" id="sharks" ';
if ($_SESSION['value'] == 1) {
echo ' checked="checked"';
}
echo ">";
?>
<br>
<button type="submit" name="submit" value="Save">Salva</button>
</form>
我已经进入了一个用户循环,我只想在用户旁边添加一个复选框,并保存连接到该用户的该复选框的值。
当我尝试保存复选框时,会发生以下情况:
谢谢大家
更新:
该图像可以提供很多帮助:
https://i.imgur.com/vXjSqcF.png
这是我拥有的表,我只想在每个用户旁边添加一个复选框并保存他们的状态。
答案 0 :(得分:1)
这基本上可以为您提供帮助:
<?php
$selected_attribute = $_SESSION['value'] == 1 ? "checked" : "";
echo("<input name='sharks' type='checkbox' value='1' id='sharks' ".$selected_attribute.">");
?>
答案 1 :(得分:1)
试图稍微改善/清理代码:
<?php if(isset($_POST['submit'], $_POST['sharks'])) {
$_SESSION['value'] = $_POST['sharks'];
} else {
$_SESSION['value'] = '';
} ?>
<form action="" method="POST">
<input name="sharks" type="checkbox" value="1" id="sharks" <?php echo $_SESSION['value'] == 1 ? "checked" : ""; ?>
<br>
<button type="submit" name="submit" value="Save">Salva</button>
</form>
这应该有效。
答案 2 :(得分:1)
很难根据假设做出答案。我假设您的字段名称相同。通常,在输入名称相同的情况下,选择一个时应一次检查所有值,或仅根据条件提交检查一个值。这很常见,因为您没有为用户定义唯一的输入名称。但是,要根据需要选择尽可能多的用户,请遵循以下代码结构:
<?php
if(isset($_POST['submit'])){ $_SESSION['mysession'] = $_POST; }else{ $_SESSION['mysession'] = array('user1'=>'', 'user2'=>'', 'user2'=>'', 'user3'=>'');}
?>
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="POST">
<input type="checkbox" name="user1" value="1" <?php if (isset($_POST['user1'])){ echo "checked";}?> >
<input type="checkbox" name="user2" value="2" <?php if (isset($_POST['user2'])){ echo "checked";}?> >
<input type="checkbox" name="user3" value="3" <?php if (isset($_POST['user3'])){ echo "checked";}?> >
<button type="submit" name="submit" value="Save">Try</button>
</form>
<?php var_dump($_SESSION['mysession']); ?>
如果您需要为所有用户将值1
插入数据库,只需为每个复选框输入将值更改为value="1"
。
因此,您不需要为每个复选框单独设置保存按钮。我希望您一定会得到所需的输出。