如何使用 php 从问题循环中回显选定的选项


How do i echo selected options from a loop of questions with php

我有一个循环,它将数据库中的问题回显到一个形式中,在选择选项中具有预定答案,例如是、否、不确定。用户可以回答任意数量的问题,但必须至少回答一个问题。如何在提交表单时将问题和相应的选定答案回显给用户。

在这里,我从dbase检索问题

<form method="post" action="">
<?php         
    $sql = 'SELECT starttime, country,league, home, away,gamecode 
    FROM games 
    WHERE starttime > DATE_FORMAT(NOW(),"%d/%m/%y %H:%i") 
    ORDER BY starttime' ;
    $retval = mysql_query($sql);
    if(! $retval )
    {
      die('Could not get games for the date selected: ' . mysql_error());
    }
    while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
    {

在这里,我将问题回声给用户

 echo "{$row['country']} | {$row['league']} | Time:{$row['starttime']}  <br> ". 
  "<div align='center'><span class='style3'>{$row['home']} VS ".
         "{$row['away']} <br> ".

在这里,我回应上述每个问题的预定可选答案

编辑我的表单头在 sql 查询上方的某个地方

     "<select name='gm" . $row['gamecode'] ."' >
         <option value=''>Select option</option>
    <option value='btsyes'>BTS (YES)</option>
    <option value='btsno'>BTS (NO)</option>
    <option value='over2.5'>Over2.5(Total Goals)</option>
    <option value='under2.5'>Under 2.5(Total Goals)</option>
    <option value='oddtg'>Odd(Total Goals)</option>
    <option value='eventg'>Even(Total Goals)</option>
    </select></span></div>".
             "<hr>";
    } 
?>

 <input type="submit" name="play" value="Register Bet" />
    </form></div>

以上所有工作正常,但在这里我想将问题和选择的答案回显给用户进行确认

这就是我尝试的

 if (isset($_POST ['play'])){
echo "Confirm Your Selection </br>";
foreach ($_POST as $key => $value ) {
  if($value !=''){   
      echo $key."-".$value;
           echo "<br>";
     }else{ echo "No valid selection Made <br>";}
    }
}

我现在使用开发人员工具,在网络选项卡上,我不知道要关注什么。这就是我得到的,如果用户选择第一个两个选项 确认您的选择12未进行有效选择未进行有效选择未进行有效选择注册投注

<select name= 'gm[]'>
         <option value='so'>select option</option>
<option value='btsyes'>BTS (YES)</option>
<option value='btsno'>BTS (NO)</option>
<option value='over2.5'>Over2.5(Total Goals)</option>
<option value='under2.5'>Under 2.5(Total Goals)</option>
<option value='oddtg'>Odd(Total Goals)</option>
<option value='eventg'>Even(Total Goals)</option>
</select>

通过做 gm[],你说这个值是一个数组。 这样,您就可以在 $_POST['gm'] 下设置多个值。

附加

默认情况下,您的表单将发送所有选择,如果未提供默认值,则将选择并传输第一个值。为避免这种情况,只需像检查value != ''时所做的那样

<select name="gm"><option value=''>Choose your Answer</option></select>

如果用户未选择"空字段将被传递,您可以跳过它。

编辑#2工作副本

<form action="" method="POST">
<select name='gm[firstQuestion]'>
    <option value=''>Select Please</option>
    <option value='Foo'>Foo</option>
    <option value='Bar'>Bar</option>
    <option value='Zoo'>Zoo</option>
    <option vlaue='Park'>Park</option>
</select>
<br>
<select name='gm[secondQuestion]'>
    <option value=''>Select Please</option>
    <option value='Foo'>Foo</option>
    <option value='Bar'>Bar</option>
    <option value='Zoo'>Zoo</option>
    <option vlaue='Park'>Park</option>
</select>
<br>
<select name='gm[thidQuestion]'>
    <option value=''>Select Please</option>
    <option value='Foo'>Foo</option>
    <option value='Bar'>Bar</option>
    <option value='Zoo'>Zoo</option>
    <option vlaue='Park'>Park</option>
</select>
<br>
<input type="submit" value="answerswer">

使用此 PHP 代码构造此表单

foreach($_POST['gm'] as $key => $answer){
    if($answer != ''){
        echo "your Question #" . $key . ' Answer is ' . $answer . PHP_EOL;
    }
}

检查输出