2014-01-18 225 views
0

感謝您花時間閱讀我的新問題,並花費一些時間來試驗和學習語言。 我試圖創建自己的民意調查,用戶可以在3個不同的國家之間進行選擇,他們認爲這將會贏得一定的競爭。當用戶點擊提交時,isset函數被觸發,它應該從他單擊的單選按鈕獲取值,並顯示每個國家到目前爲止的投票數。單擊按鈕時從單選按鈕獲得價值PHP

即時得到一個錯誤未定義指數隊,當我點擊提交團隊名稱在我的單選按鈕

我不是要求別人來完成這個問題對我來說,而只是指出我在正確的方向。在我的教科書中,它說你可以通過$ _REQUEST superglobal獲得任何單選按鈕的值,但顯然我做錯了什麼。

代碼如下:

<?PHP if(isset($_POST["submit"])) {   
    $selected_team = $_REQUEST['team'];   
     if($selected_team == 'NZ'){  
      $selected_team ='NZ'; 
      } 
      else if($selected_team =='AUS') 
      {   
       $selected_team = 'AUS'; 
      } 
      else if($selected_team =='SA'){ 
       $selected_team = 'SA' 
      } 
     echo $selected_team; 

$sql = "SELECT * FROM `votes`";  
     $result = mysql_query($sql)  
     or die($result."<br/><br/>".mysql_error()); 

      while ($row = mysql_fetch_array($result)){   
       print "AUS: ".$row['AUS']."<br>"; 
       print "NZ: ". $row['NZ']."<br>";   
       $row['SA']."<br>"; print "SA:"; 
       } 

      else{ 
       echo' <form name="poll" method="post"id="poll"> 
       <label for="NZ">New Zealand</label> 
        <input type="radio" id="NZ" name="NZ" value="team" /> <br /> 
       <label for="AUS" style="margin-left:25px">Australia</label> 
        <input type="radio" id="AUS"name="AUS" value="team" /> <br /> 
       <label for="SA"style="margin-left:3px">South Africa</label> 
        <input type="radio"id="SA" name="SA" value="team" /> <br /> 

+0

單選按鈕和複選框只有在被檢查過的情況下才會被髮送,否則什麼都不會被髮送。你的價值和名字需要切換。名稱是什麼php在'$ _POST'中使用,值是'$ _POST ['team']' – Class

+0

@類感謝您的回覆,我嘗試了您的建議,但仍然沒有結果... – Marilee

回答

0

有會帶來很多問題。

你的問題之一是你給單選按鈕分配了錯誤的值。 value是單選按鈕的值。所以,你的形式應該是這樣的:

echo' <form name="poll" method="post"id="poll" action="your_next_script.php"> 
      <label for="NZ">New Zealand</label> 
       <input type="radio" id="NZ" name="team" value="NZ" /> <br /> 
      <label for="AUS" style="margin-left:25px">Australia</label> 
       <input type="radio" id="AUS"name="team" value="AUS" /> <br /> 
      <label for="SA"style="margin-left:3px">South Africa</label> 
       <input type="radio"id="SA" name="team" value="SA" /> <br /> 
      <input type="submit" value="submit"/> 

然後在你的下一個頁面的your_next_script.php,你可以做類似處理形式:

$selected_team = $_POST['team'];   
     if($selected_team == 'NZ'){  
      $selected_team ='NZ'; 
      } 
      else if($selected_team =='AUS') 
      {   
       $selected_team = 'AUS'; 
      } 
      else if($selected_team =='SA'){ 
       $selected_team = 'SA' 
      } 
     echo $selected_team; 

你可以老老實實地縮短這:

$selected_team = $_POST['team'];  
echo $selected_team; 

不需要if/else語句,因爲您所做的只是輸出值$selected_teams。如果你打算處理數據,比如增加投票數,你需要if/else陳述

你需要記住的是PHP是一個服務器端腳本,只需點擊單選按鈕不會觸發行動。您必須提交表單,然後移至另一頁以處理數據。如果你想在不提交表單的情況下處理數據,你需要使用javascript,但是如果你打算進行一個民意調查,那麼你將會想要第二個頁面。