2

我已经从 mysql 中选择了数据并将它们插入到一个单选按钮表单中,如图所示:

if($num_rows) {

    echo '<form name="fixtureform" method="POST" action="index.php">';

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

    echo $row["home_team"] . " vs " . $row["away_team"]. '<br />' . " Home" . '<input type="radio" name="win'.$row["home_id"].'" value="'.$row["home_id"].'"/>' ." Draw" . '<input type="radio" name="'.$row["home_id"].$row["away_id"].'" value="draw"/>' ." Away" . '<input type="radio" name="win'.$row["away_id"].'" value="' . $row["away_id"] . '"/>' .'<br />';

}
    echo '<input type="Submit" Name="Submitacc" Value="Submit your teams">';
    echo '</form>';

} else { 
        echo "There are no fixtures today ";
        }

然后我有一个提交值的 if 语句:

if($_POST['Submitacc']=='Submit your teams') {


    }

如果单选按钮的选定名称是 win.$row[home_id],我该怎么说 - 将值插入 mysql 表。我正在努力解决我无法在循环之外获得 $row[home_id] 的事实?

提前致谢

4

5 回答 5

1

尝试如下

$i=0;
while ($row = mysql_fetch_assoc($result)) {
    echo $row["home_team"] . " vs " . $row["away_team"]. '<br />' . " Home" . '<input type="radio" name="result['.$i.']" value="h_'.$row["home_id"].'"/>' ." Draw" . '<input type="radio" name="result['.$i.']" value="draw"/>' ." Away" . '<input type="radio" name="result['.$i.']" value="a_' . $row["away_id"] . '"/>' .'<br />';
  $i++;
}

在你的 PHP 中

foreach($_POST['result'] as $value){
   if($value == 'draw') {
     //do stuff
   }
   else {
     $apart = explode('_',$value);
     if($apart[0]=='h'){
        //home team win
        echo $apart[1];
     }
     else {
        //away team win
        echo $apart[1];          
     }
   } 
}
于 2012-12-14T11:07:41.270 回答
0

将您的元素名称更改为win.home不带id,因为您将通过值获取它。

然后像这样:

if(isset($_POST['win.home'])) { }

编辑:

如果你想这样做,试试这个:

3 个单选按钮,名为win.home, drawwin.away加上一个唯一的 id(mysql id?),这样win.home.1234您就可以使用任意数量的游戏。explode()您可以稍后取回该 ID 。

然后是值:

第一个:$row["home_id"] . "-" . $row["away_id"]

第二:draw

第三:$row["away_id"] . "-" . $row["home_id"]

然后在处理表格时:

explode()用at分割值-。所以第一个 id 总是赢家。

于 2012-12-14T10:53:05.810 回答
0

我认为在这种情况下应该使用单选按钮机制的不同用法。

在您的示例中,您正在为每一行创建 3 个不同的单选按钮实例,而是根据给出的答案创建一个具有不同值的单选按钮实例

喜欢:

<input type="radio" name="game'.$row["game_id"].'" value="'.$row["home_id"].'">
<input type="radio" name="game'.$row["game_id"].'" value="draw">
<input type="radio" name="game'.$row["game_id"].'" value="'.$row["away_id"].'">

这意味着该变量$_POST["game1"]将具有为游戏选择的获胜者或平局的值,即game_id 1

希望这对你有帮助

于 2012-12-14T10:59:45.253 回答
0

用这个

echo"<input name='win' type='radio' value='".$row['home_id']."' />";
于 2012-12-14T10:52:17.930 回答
0

因为你的收音机有不同的名字,它们都是独立的并且都被提交了,我建议将它们都命名为“结果”,并分别给它们“赢”、“画”和“松”的值。

<label>Win: <input type="radio" name="result" value="win" /></label>
<label>Draw: <input type="radio" name="result" value="draw" /></label>
<label>Loose: <input type="radio" name="result" value="loose" /></label>
<input type="hidden" name="home_team" value="<?php echo $row['home_team']; ?>" />
<input type="hidden" name="away_team" value="<?php echo $row['away_team']; ?>" />

您可以使用 $_POST['result'] 访问该值,并且由于您了解主队和客队,因此您可以相应地处理数据

于 2012-12-14T10:52:24.700 回答