0

投票の選択肢を更新して、送信するたびに更新したいと思います。しかし、それは機能していないようでした。隠されたフィールドで状態を維持することについて誰かが私にアドバイスできますか?現在のページのすべてのコンテンツをクリアして、投票結果テーブルを表示するにはどうすればよいですか?

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

2 に答える 2

0

送信したコードは、アクティブなセッション中(ユーザーがそのページを離れない限り)ユーザーの選択/状態を維持する必要があるように見えますが、ユーザーが離れるとすぐに失われます。また、彼らの「投票」は他のユーザー間で共有することはできません。

ユーザーの状態を維持するには、PHPセッションの使用を検討するか、結果をファイル/データベースに保存します。

ユーザーの投票を他のユーザーと共有するには、ファイルまたはデータベースの使用を検討してください。

フォームなしで結果テーブルを表示するには、ユーザーが「投票」した後、次の2つのいずれかを実行できます。フォームの周りにifステートメントを配置して、回答がすでに選択されているかどうかを確認できます。選択されている場合は、フォームを表示しないでください。もう1つの方法は、フォームのない別のページに結果テーブルを配置することです(フォームを別のページにPOSTするか、フォームのあるページを別のページにリダイレクトするだけです)。

于 2012-07-16T14:38:39.597 に答える
0

データベースを使用して値を保存してみませんか?また、入力に使用しているテーブルをif条件に入れて、フォームの送信時にレンダリングされないようにすることができます。お役に立てれば!

于 2012-07-16T15:15:27.710 に答える