如何捕获单选按钮值并将其发送到PHP纯文本文件?

时间:2016-03-10 06:28:11

标签: php html server

所以我在Stackoverflow和其他论坛上到处查找,但找不到我的问题的解决方案。这是问题所在:

创建一个HTML文件,询问用户投票的问题。应该使用单选按钮完成一些选项。还应该有一个提交投票的按钮。当他们投票时,他们应该被发送到一个PHP文件(不同于带有问题的HTML文件),记录他们的投票并向他们展示迄今为止的投票总数。要存储投票,您只需在服务器上使用文本文件即可。部分输出如下所示。

我学会了如何读取和写入文件。为此,我想我必须每次都阅读文本文件,因为我必须记录每次投票。但我的问题是如何将单选按钮的各个值发送到文本文件,因为现在发生的事情是我无法选择带有$ _POST [“first”]的单选按钮选项,因为您可以选择多个单选按钮。并且只有这样才能选择一个选项的唯一方法是给单选按钮赋予相同的名称值。

到目前为止,这是我的代码: HTML                          

    </style>
  </head>
<body>
  <p>Whats your favorite class.</p>
  <form action="brianaCounted.php" method="post">
    <input type="radio" name="first" checked> 256
    <input type="radio" name="second"> 349
    <input type="radio" name="third"> 359
    <input type="submit" name="submit" value="submit">
  </form>
</body>
</html>

PHP

<?php
    if (isset($_POST['submit'])) {
        $first = 0;
        $second = 0;
        $third = 0;

        if (isset($_POST['first'])) {
            $first += 1;
        } else if (isset($_POST['first'])) {
            $second += 1;
        } else {
            $third += 1;
        }
        echo $first, $second, $third;
    }
?>

提前谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码将数据保存到JSON文件

 <form action="brianaCounted.php" method="post">
    <input type="radio" name="class" value="first" checked> 256
    <input type="radio" name="class" value="second"> 349
    <input type="radio" name="class" value="third"> 359
    <input type="submit" name="submit" value="submit">
  </form>

PHP代码

   <?php
if (isset($_POST['submit'])) 
{
$userChoice = array();
// read uses data from JSON file
$userChoice = json_decode( file_get_contents('userChoice.json'),TRUE);
    if (isset($_POST['class']))
    {
         $value = $_POST['class'];
         $userChoice[$value]++;
    } 
    file_put_contents('userChoice.json',json_encode($userChoice));
}
?>

答案 1 :(得分:0)

您必须提供共享相同问题的所有单选按钮,名称相同。通过这样做,不可能再选择多个选项。要检查选择了哪个选项,您可以通过它们的值区分它们。将此用于HTML:

<body>
  <p>Whats your favorite class.</p>
  <form action="brianaCounted.php" method="post">
    <input type="radio" name="question1" value="option1" checked> 256
    <input type="radio" name="question1" value="option2"> 349
    <input type="radio" name="question1" value="option3"> 359
    <input type="submit" name="submit" value="submit">
  </form>
</body>

在PHP中,您可以通过检查$_POST['question1']

的值来检查选择了哪个选项
<?php
    if (isset($_POST['submit'])) {
        $first = 0;
        $second = 0;
        $third = 0;

        // Has question1 been answered?
        if (isset($_POST['question1'])) {
            $answer = $_POST['question1'];

            if ($answer == "option1") {
                $first++;
            } else if ($answer == "option2") {
                $second++;
            } else if ($answer == "option3") {
                $third++;
            }
        }

        echo "$first, $second, $third";
    }