2014-01-18 180 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,但是如果你打算进行一个民意调查,那么你将会想要第二个页面。