PHP 从单选按钮捕获的值"On"

  • 本文关键字:On 单选按钮 PHP php
  • 更新时间 :
  • 英文 :


我正在尝试捕获问题ID及其答案。问题当我打印数组时,值为"ON",它具有第一个单元格中的问题编号正确,但第二个单元格为"ON"。这是我的代码:

function get_questions($quiz_id)
{
include'connection.php';
$stmt = $conn->prepare("select id,question,option1,option2,option3,option4,answer from questions where quiz_id=?");
$stmt->bind_param("i",$quiz_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($qid,$question,$option1,$option2,$option3,$option4,$answer);
$num_of_rows = $stmt->num_rows;
while($stmt->fetch()) {
echo $question;
echo "<br/>";
?>
<form  method="POST"action="">
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="x"><?php echo $option1;?><br/>
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="y"><?php echo $option2;?><br/>
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="z"><?php echo $option3;?><br/>
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="f"><?php echo $option4;?><br/>
<!--<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="<?php echo $option2;?>"><?php echo $option2;?><br/>
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="<?php echo $option3;?>"><?php echo $option3;?><br/>
<input type="radio" name="radio[<?php echo $qid; ?>]" ]value="<?php echo $option4;?>"><?php echo $option4;?><br/>
-->
<?php
}
?>
<input type="submit" name="submit" value="submit" > 
</form>
<?php
if(isset($_POST['submit'])) {
$answers=$_POST['radio'];
print_r($answers);
// Iterate through each answer
}
}

您的问题是一个简单的语法错误:

]value="x">

这个方括号将属性的名称从value更改为]value,因此在提交时没有要捕获的值。

此外,请确保将打开的form标签移出循环:

while($stmt->fetch()) {
...
<form  method="POST"action=""> // <- this here opens a new tag with each iteration

因为您在循环的外部关闭了标签,这意味着您没有创建有效的html。

在这里,当您混合使用php和html代码时,我建议您使用另一种语法:

<form method="POST" action="">
<?php while ($stmt->fetch()): ?>
<input type="radio"...
...
<?php endwhile ?>
<input type="submit" name="submit" value="submit" >
</form>

它使它比必须匹配大括号更易读,更容易理解。

最新更新