【问题标题】:Radio buttons used in while statement from query查询中的 while 语句中使用的单选按钮
【发布时间】:2017-03-07 19:56:20
【问题描述】:

我正在进行一项调查。我有一个包含可能回答的问题数据库。我创建了一个显示所有问题和选择的查询。一切显示正常。问题是我只能为一个问题选择单选按钮。这是代码部分:

echo' <form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'">';
                            echo '<p class="hwhite">Please answer every question:</p><table>';
                            $result = mysql_query("SELECT * FROM survey_question
                            WHERE formNum = 3"); 
                            while ($row = mysql_fetch_array($result)) {
                            Echo'<tr><td class=reg>' . $row['question'] . '</td><td class=tdleft>';
                            echo "<input type='hidden' name='qId[]' value=" .$row['qId'] .">";
                            //echo "<input type='text' name='response[]' > this is the test one";
                            Echo "<input type='radio' name='response[]' value='1'>" .$row['r1']." <br>";
                            Echo"<input type='radio' name='response[]' value='2' />" .$row['r2']." <br>";
                            Echo'<input type="radio" name="response[]" value="3" />' .$row['r3'].' <br>';
                            Echo'<input type="radio" name="response[]" value="4" /> ' .$row['r4'].'<br>';
                            echo"</td></tr>";
                            }
                            echo"</table></div>";
                            echo'<input type="hidden" name="complete" value="complete">';
                            echo'<input type="hidden" name="person" value="person">';
                            echo'<input type="reset" value="Reset Form" /></p>';
                            echo'<input type="submit" value="Complete Survey" class="button" alt="Submit form" border="0"/>';
                            echo'<br> </form><br>';

你的意思是: 请回答每一个问题:

食品处理人员应向经理报告以下哪种疾病。头痛
喉咙痛
膝盖肿胀
轻度腹泻
哪种鸡胸肉正确烹调到内部温度157°F
烹调至 165°F 的表面温度
烹调至 168°F 的内部温度
烹调至 155°F 的表面温度


* ** 更新

// find out how many records there are to update 
                        $size = count($_POST['qId']); 
                        // start a loop in order to update each record 
                        $i = 0; 

                        while ($i < $size) { 
                            // define each variable 

                            $qId =  $_POST['qId'][$i]; 
                            $rNum =  $_POST['response'][$i]; 
                        // do the update 
                            $query = "INSERT survey_results (qId, rNum) Value ('$qId', '$rNum')"; 
                        mysql_query($query) or die ("Error in query: $query");
                        ++$i;

【问题讨论】:

  • 如果您没有使用foreach 和/或将其视为数组以允许多项选择,则问题可能出在 php 本身(您未包含的代码)。
  • 请运行您的 php 脚本并向我们展示您的 html 源代码
  • "问题是我只能为一个问题选择单选按钮" 您希望单选按钮选择多少选项?你的单选按钮都在同一个组,你用复选框来代替怎么样?
  • “问题是我只能为一个问题选择单选按钮。” - 呃,我的第一条评论;为此使用复选框。它现在对我来说只是叮当lol但是,我对此“有点正确”(我的第一条评论,我保持不变)。如果将它们更改为复选框并不能解决此问题,那么问题也在其他地方。
  • 我不确定你的意思。我用屏幕上的代码编辑了问题,网站是 www.marylandfoodhandler.com/surveyForm.php

标签: php mysql radio


【解决方案1】:

您需要更改每个问题的单选按钮的名称。现在它们都被命名为 response[]。我可能会将问题 ID 添加到按钮名称中。比如:

Echo "<input type='radio' name='response_" . $row['qId'] . "[]' value='1'>" .$row['r1']." <br>";

【讨论】:

  • 进行了此编辑。现在可以为每个问题选择一个选项。但是它没有正确更新到数据库 Echo'' .$row['r3' ]。
    ';
  • // 找出有多少条记录需要更新 $size = count($_POST['qId']); // 开始循环以更新每条记录 $i = 0; while ($i
  • $rNum = $_POST['response_'.$i][$i];
  • 收到此响应:未定义索引:/hsphere/local/home/smlwfarace/marylandfoodhandler.com/surveyForm.php 中的响应 72 注意:未定义索引:/hsphere/local/home/ 中的响应1第 72 行的 smlwfarace/marylandfoodhandler.com/surveyForm.php 警告:我没有在任何地方包含 _。但这应该没关系
  • 对不起。第一个$i 应该是$_POST['qId'][$i]
猜你喜欢
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 2013-08-03
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 2017-12-09
相关资源
最近更新 更多