2016-03-10 56 views
1

所以我在Stackoverflow和其他論壇上到處查找,但找不到解決我的問題的方法。這裏是問題:如何捕獲單選按鈕值並將其發送到PHP純文本文件?

創建一個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; 
    } 
?> 

預先感謝您!

回答

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)); 
} 
?> 
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"; 
    } 
相關問題