我正在尝试构建一个清单,您可以在其中选择/取消选中多个复选框,并使用提交按钮将其保存到页面中。
以下是我正在使用的代码:
<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上看到,以便更好地了解它的用途。
答案 0 :(得分:1)
你需要:
name
和value
)。$_POST
中)并输出checked
属性有条件地。如果您希望在重新加载页面时结果仍然存在,您还需要将该数据存储在某个地方(如数据库),然后在通过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>
我对会话功能的使用并不是正确的方法,因为它主要仅用于用户验证,但它可以解决这个问题。