在另一个循环中已经保存一次复选框值

时间:2018-07-25 08:27:56

标签: php loops checkbox

我有此代码:

<?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>

我已经进入了一个用户循环,我只想在用户旁边添加一个复选框,并保存连接到该用户的该复选框的值。
enter image description here

当我尝试保存复选框时,会发生以下情况:
enter image description here

谢谢大家

更新: 该图像可以提供很多帮助: https://i.imgur.com/vXjSqcF.png
这是我拥有的表,我只想在每个用户旁边添加一个复选框并保存他们的状态。

3 个答案:

答案 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"

因此,您不需要为每个复选框单独设置保存按钮。我希望您一定会得到所需的输出。