在单击按钮PHP时从单选按钮获取值

时间:2014-01-18 03:03:57

标签: php html mysql

感谢您抽出宝贵时间阅读我对PHP的新问题并花些时间进行实验和学习该语言。 我试图创建自己的民意调查,用户可以选择3个不同的国家,他们认为这将赢得某个竞争。当用户点击提交时,会触发isset功能,该功能应该从他点击的单选按钮获取值,并显示到目前为止每个国家/地区的投票数。

当我点击提交团队时,我收到错误未定义的索引团队是我的单选按钮中的名称

我不是要求某人为我完成这个问题,而只是指出我正确的方向。在我的教科书中,它说你可以通过$ _REQUEST超全局获得任何单选按钮的值,但显然我做错了。

代码如下:

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

                            

1 个答案:

答案 0 :(得分: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,但是如果要进行民意调查,那么你将需要第二页。