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

これを使って

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

ラジオの名前はすべて別々で送信されているため、すべて「result」という名前を付け、それぞれ「win」、「draw」、「loose」の値を付けることをお勧めします。

<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 に答える
0

値によって取得されるため、要素名をwin.homeなしに変更しますid

次に、次のようになります。

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

編集:

このようにしたい場合は、これを試してください:

win.home、という名前の3つのラジオボタンにdraw加えwin.awayて、そのような一意のID(mysql id?)を使用すると、必要なwin.home.1234数のゲームを使用できます。後でIDを取り戻すことができますexplode()

次に、値:

1位:$row["home_id"] . "-" . $row["away_id"]

2番目:draw

3位:$row["away_id"] . "-" . $row["home_id"]

次に、フォームを処理するとき:

で値を分割しexplode()ます-。したがって、最初のIDが常に勝者です。

于 2012-12-14T10:53:05.810 に答える
0

この場合、ラジオボタンのメカニックのさまざまな使用法が使用されると思います。

あなたの例では、行ごとにラジオボタンの3つの異なるインスタンスを作成していますが、代わりに、与えられた答えに応じて異なる値で設定されたラジオボタンの1つのインスタンスを作成しています

お気に入り:

<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 に答える