PHP:将状态与隐藏字段混淆
我想在每次提交时更新投票选择。 但它似乎不起作用。有人能给我一些关于隐藏场状态的建议吗? 如何清除当前页面中的所有内容以显示投票结果表PHP:将状态与隐藏字段混淆,php,html,Php,Html,我想在每次提交时更新投票选择。 但它似乎不起作用。有人能给我一些关于隐藏场状态的建议吗? 如何清除当前页面中的所有内容以显示投票结果表 <?php if ($_POST['choice']==0) $a_count = $_POST['a_count']+1; if ($_POST['choice']==1) $b_count = $_POST['b_count']+1; if ($_POST['choice']==2) $c_count = $_POST['c_
<?php
if ($_POST['choice']==0)
$a_count = $_POST['a_count']+1;
if ($_POST['choice']==1)
$b_count = $_POST['b_count']+1;
if ($_POST['choice']==2)
$c_count = $_POST['c_count']+1;
if ($_POST['choice']==3)
$d_count = $_POST['d_count']+1;
?>
<html>
<head>
</head>
<body>
<form action="index.php" method="POST">
<table align="center">
<tr><td>Please select</td></tr>
<tr><td><input type="radio" name="choice" value="0">aaaa</td></tr>
<input type="hidden" name="a_count" value="<?php print $a_count ?>">
<tr><td><input type="radio" name="choice" value="1">bbbb</td></tr>
<input type="hidden" name="b_count" value="<?php print $b_count ?>">
<tr><td><input type="radio" name="choice" value="2">cccc</td></tr>
<input type="hidden" name="c_count" value="<?php print $c_count ?>">
<tr><td><input type="radio" name="choice" value="3">dddd</td></tr>
<input type="hidden" name="d_count" value="<?php print $d_count ?>">
<tr><td><input type="submit" value="submit"></td></tr>
</table>
<table align="center" border="1" cellspacing="0">
<tr align="center"><th>Member Name</th><th>Vote</th></tr>
<tr><td>aaaa</td><td><?php echo"$a_count";?></td></tr>
<tr><td>bbbb</td><td><?php echo"$b_count";?></td></tr>
<tr><td>cccc</td><td><?php echo"$c_count";?></td></tr>
<tr><td>dddd</td><td><?php echo"$d_count";?></td></tr>
</table>
</form>
</body>
</html>
请选择
aaaa
您提交的代码看起来应该在用户的活动会话期间保留用户的选择/状态(只要他们不离开该页面),但一旦他们离开,它就会丢失。此外,他们的“投票”不能在任何其他用户之间共享
要保持用户的状态,请探索使用PHP会话或将结果存储在文件/数据库中
要与其他用户共享用户的投票,请探索文件或数据库的使用
要显示没有表单的结果表,在用户“投票”后,您可以执行以下两种操作之一。您可以在表单周围放置if语句,以检查是否已选择答案-如果已选择,则不显示表单。另一种方法是将结果表放在没有表单的单独页面上(只需将表单发布到单独的页面,或者将带有表单的页面重定向到单独的页面)。为什么不使用数据库存储值??您可以将用于输入的表置于if条件中,以便在提交表单时不会呈现该表。希望这有帮助 您需要将投票结果存储在数据库中。PHP变量在每次服务器请求后都会被清除。如果不是解决方案,您实际上想要什么?有很多方法可以保持状态。谢谢你的回答。我每次提交时都试图更新投票分数,但当我三次汇总选择3时。显示为3的分数然后提交另一个选项选项选项3的分数消失。你能告诉我怎么修这个吗?那个很容易。在PHP中,您应该根据POST值预先定义$a_count
、$b_count
等变量,然后递增它们。例如,尝试:$a\u count=$\u POST['a\u count']+($\u POST['choice']==0)?1:0代码>。这会将$a_count
设置为当前值,如果“选项”是a,则会将其递增1。您也可以对每个计数变量执行此操作。