单选按钮的动态命名

时间:2012-08-23 18:30:21

标签: php button radio

我有一个由sql语句返回的“n”行数。效果很好。对于返回的每一行,我希望用户选择一个选项(选项'a'或选项'b')

作为标准练习,使用while循环遍历每一行,并尝试按行号命名我的选项。但是,当我尝试获取用户选择的单选按钮的值时,我遇到了问题。

我似乎无法在where子句的第一个循环(或任何具有相应名称的循环)中动态获取名为1的单选按钮的值。

此处的代码段:

$counter = 1;

while($row = mysql_fetch_array($result))
{

  echo "<form action='updatepics.php' method='post'>";
  echo "<input type='radio' name='m" . $counter . "' value=  ". $row['f_id'] ."> " . $row['Favorite'];
  echo "<input type='hidden' name='game' value=" . $counter . ">";
  echo " vs " . $row['Underdog'] ." ";
  echo "<input type='radio' name='m" . $counter . "' value=  ". $row['d_id'] ."> ";

  echo "<br>";
  echo "<input type='hidden' name='choice' value=" . $_GET["m" . $counter] . " >";
  echo "<input type='submit' value='Make Choice'>";
  echo "</form>";
  $counter ++;
}

updatepics.php:

Game 
<?php
 echo $_POST['game'];
 echo " " . $_POST['player'] . " picks: ";
 echo " " . $_POST['choice'] ;
 ?>

updatepics.php的输出...
      游戏1奶奶选秀权:

注意'choice'为空

2 个答案:

答案 0 :(得分:0)

根据HTML4规范,names attributes are defined as CDATACDATA is defined as follows

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

修改代码,使所有名称值至少以一个字母开头。

答案 1 :(得分:0)

我从动态创建单选按钮名称中获救。现在,所有单选按钮在循环的每次迭代中都具有相同的名称。

即使您在每次迭代按下提交按钮之前选择了所有按钮,它似乎也能在正确的时间传递正确的值。

echo "<form action='updatepics.php' method='post'>";

echo "<input type='radio' name='mw' value=  ". $row['f_id'] ."> " . $row['Favorite'];
echo "<input type='hidden' name='game' value=" . $row['f_id'] . ">";
echo "<input type='hidden' name='player' value='" . $user . "' >";
echo " vs " . $row['Underdog'] ." ";
echo "<input type='radio' name='mw' value=  ". $row['d_id'] ."> ";
echo "  " . $row['line'];

echo "<input type='submit' value='Make Choice'>";
echo "</form>";

updatepics.php就是这么简单,它有效:    $ _POST [ 'MW']