PHP - 使用提交按钮保存复选框

时间:2017-05-23 21:38:36

标签: php html checkbox

我正在尝试构建一个清单,您可以在其中选择/取消选中多个复选框,并使用提交按钮将其保存到页面中。

以下是我正在使用的代码:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="submit" value="Save" name="save" id="save" />
    <ul>
        <li><input type="checkbox" />Tickets</li>
            <ul>
                <li><input type="checkbox" name="person1" id="person1" value="1" />Person 1's ticket</li>
                <li><input type="checkbox" name="person2" id="person2" value="2" checked />Person 2's ticket</li>
                <li><input type="checkbox" name="person3" id="person3" value="2" />Person 3's ticket</li>
                <li><input type="checkbox" name="person4" id="person4" value="2" checked />Person 4's ticket</li>
            </ul>
</form>

PHP:[仅显示为1]

            <?php
            if (isset($_POST["submit"])) {
                echo "<input type='checkbox' name='person1' id='person1' value='1' checked />";
            } else {
                echo 'There was an error.';
            }
        ?>

在刷新页面后,我似乎无法获取用于保存数据的复选框。

单击“保存”后,我希望页面重新加载,并使用复选框保存其数据。

我试图保持这个非常简单,所以代码量越少越好。我能找到的一切都需要使用jQuery或数据库。

我是PHP的新手,非常感谢任何帮助。

我的网站的实时版本可以在www.magycka.us上看到,以便更好地了解它的用途。

3 个答案:

答案 0 :(得分:1)

你需要:

  1. 将数据发送到PHP。 (为输入提供namevalue)。
  2. 写一些PHP来注意它(它将在$_POST中)并输出checked属性有条件地
  3. 如果您希望在重新加载页面时结果仍然存在,您还需要将该数据存储在某个地方(如数据库),然后在通过GET请求而不是POST请求加载页面时检索它)。

答案 1 :(得分:0)

通过创建一个mysql数据库并使用PHP将值存储为db中的1或0来解决这个问题。

答案 2 :(得分:-2)

你需要一个地方来选择数据源(SQL数据库),会话或cookie这样的选择。如果您希望将信息删除以供以后在用户基础上使用,则可以使用SQL。如果您正在寻找像过滤功能这样的临时解决方案;我建议使用session。所以这是我的版本。 :)

<?php
session_start();
if($_SERVER["REQUEST_MOTHOD"] == "POST) {
  if(!empty($_POST["person1"])){
    $_SESSION["person1"] = $_POST["person1"];
  }
  if(!empty($_POST["person2"])){
    $_SESSION["person2"] = $_POST["person2"];
  }
  if(!empty($_POST["person3"])){
    $_SESSION["person3"] = $_POST["person3"];
  }
  if(!empty($_POST["person4"])){
    $_SESSION["person4"] = $_POST["person4"];
  }
}
?>
  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="submit" value="Save" />
    <ul>
      <li><input type="checkbox" />Tickets</li>
      <ul>
        <li><input type="checkbox" value="person1" checked />Person 1's ticket</li>
        <li><input type="checkbox" value="person2" checked />Person 2's ticket</li>
        <li><input type="checkbox" value="person3" <?php echo (isset($_SESSION[ "person3"]))? "checked": ""; ?> />Person 3's ticket</li>
        <li><input type="checkbox" value="person4" <?php echo (isset($_SESSION[ "person3"]))? "checked": ""; ?> />Person 4's ticket</li>
      </ul>
  </form>

我对会话功能的使用并不是正确的方法,因为它主要仅用于用户验证,但它可以解决这个问题。