PHP:混淆保持状态与隐藏字段

时间:2012-07-16 14:34:02

标签: 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_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>

2 个答案:

答案 0 :(得分:0)

您提交的代码看起来应该保持用户在活动会话期间的选择/状态(只要他们不离开该页面) - 但是一旦他们离开它就丢失了。此外,他们的“投票”不能在任何其他用户之间共享。

要保持用户的状态,请探索使用PHP会话或将结果存储在文件/数据库中。

要与其他用户分享用户的投票,请浏览文件或数据库的使用。

要显示没有表单的结果表,在用户“投票”之后,您可以执行以下两项操作之一。您可以在表单周围放置一个if语句来检查是否已经选择了答案 - 如果是,则不显示表单。另一种方法是将结果表放在一个没有表单的单独页面上(只需将表单POST到单独的页面,或者将表单的页面重定向到单独的页面)。

答案 1 :(得分:0)

为什么不使用数据库存储值?并且您可以将用于输入的表放在if条件中,以便在提交表单时不呈现它。希望这有帮助!