【问题标题】:Dynamic naming of radio buttons单选按钮的动态命名
【发布时间】:2012-08-19 08:10:41
【问题描述】:

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

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

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

代码 sn-p 在这里:

$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 ++;
}

更新图片.php:

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

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

注意“选择”为空

【问题讨论】:

  • 这可能无助于回答您的问题,但您应该停止使用mysql_* 函数。它们正在被弃用。请改用PDO(PHP 5.1 起支持)或mysqli(PHP 4.1 起支持)。如果您不确定要使用哪一个,read this article.
  • 您也可以为updatepics.php 发布PHP 吗?
  • 您确定$_GET[$counter] 已设置吗?
  • 你说的是echo "&lt;input type='hidden' name='choice' value=" . $_GET[$counter] . " &gt;";那一行?
  • 1) 我将回顾新方法 - ty。 2) updatepics.php 只是有 echo 语句来确保变量被正确传递,但我会发布。 3) $counter 已设置,并且对于我“做出选择”的每一行,适当的数字都会传递给 updatepics.php。 4)是的,抱歉不够清楚......我正在寻找为什么'选择'没有得到用户在 echo "";

标签: php button radio


【解决方案1】:

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

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。

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

【讨论】:

  • 我之前尝试过(不想用我尝试过的所有东西来加重原始帖子的负担)。让我再试一次……
  • echo " " . $row['收藏夹']; echo "";回声“对”。 $row['Underdog'] ." "; echo " "; //回声“”。 $row['line'];回声“
    ”;回声 $_GET[$counter]; echo ""; echo "";回声“”; $counter ++;
【解决方案2】:

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

即使您在每次迭代点击提交按钮之前选择所有按钮都已设置,它似乎在正确的时间传递正确的值。

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']

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2011-01-20
    • 2011-10-03
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多