我从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]?
提前致谢
答案 0 :(得分: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];
}
}
}
答案 1 :(得分:0)
使用此
echo"<input name='win' type='radio' value='".$row['home_id']."' />";
答案 2 :(得分: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']访问该值,因为您知道主队和客队,您可以相应地处理数据
答案 3 :(得分:0)
将您的元素名称更改为win.home
而不使用id
,因为您可以通过该值获取它。
然后去:
if(isset($_POST['win.home'])) { }
编辑:
如果你想这样做,试试这个:
3个单选按钮,名为win.home
,draw
,win.away
加上一个唯一的ID(mysql id?),如win.home.1234
,那么您可以使用任意数量的游戏。您可以稍后使用explode()
获取ID。
然后是值:
1st:$row["home_id"] . "-" . $row["away_id"]
第二名:draw
第3名:$row["away_id"] . "-" . $row["home_id"]
然后在处理表格时:
在explode()
处使用-
拆分值。所以第一个id永远是赢家。
答案 4 :(得分: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
希望这可以帮助你