php - 单选按钮名称属性可以有数值吗

标签 php for-loop radio-button forms

不确定问题标题是否足够清晰 - 但我指的是 - 为单选按钮的名称属性赋予数值(例如 102)是否是一种不好的做法

<input type="radio" name="102" value="2032" /> Hello World

如果这是一个坏主意 - 我该如何处理这种情况。 我有一项多项选择题考试,所有 60 个问题都会同时显示在页面上。

问题存储在问题数组中,对于每个问题 - 多个选择存储在答案数组中

这是一个 for 循环,它生成 60 个问题及其多项选择答案 - 现在我使用 Question_id 作为单选按钮的值

<?php
$question_ids = array_keys($this->question_array);
foreach($question_ids as $question_id) 
{
    $question = $this->question_array[$question_id];
    $answers = $this->answer_array[$question_id];
?>
    <div> 
        <strong>Q) <?php echo $question['question'];?></strong>         
    <div>
        <?php foreach ($answers as $answer) { ?><br/>
        <input type="radio" name="<?php echo $question_id;?>" value="<?php echo $answer['answer_id'];?>" /> <?php echo $answer['answer'];?>
        <?php } ?>          
    </div>
    </div>
<?php 
} ?>

所以我已经用question_id分配了名称,用answer_id分配了值 - 所以在服务器端 - 我会知道为哪个问题选择了哪个答案选项 - 不用说它们是来自数据库的唯一自动生成的ID

foreach ($_POST as $key => $value)
    echo "For question id ".htmlspecialchars($key)." answer selected is ".htmlspecialchars($value)."<br>";

如果分配号码是一个坏主意 - 为什么会这样。 对我来说,另一个选择是分配一个名称值,例如 name="questionId-102"并在服务器端解析它。

让我知道处理此问题的最佳方法是什么。 谢谢

最佳答案

更好的做法是将其放入一系列问题中:

<?php foreach ($answers as $answer) { ?><br/>
<input type="radio" name="questions[<?=$question_id;?>]" value="<?=$answer['answer_id'];?>" /> <?=$answer['answer'];?>

还有:

foreach ($_POST['questions'] as $key => $value)
    echo "For question id ".htmlspecialchars($key)." answer selected is ".htmlspecialchars($value)."<br>";

关于php - 单选按钮名称属性可以有数值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296130/

相关文章:

php - 使用 if.. 语句检查用户是否存在于表中

javascript - for循环和数组来获取图像

java - Java 中的 try-catch 和循环异常

javascript - 如何使用 javascript 获取所选单选按钮的标签

python - 使用 wxpython 为单选框中的特定项目着色

php - 如何在通过 fopen 创建的 php 文件中包含变量

php - SQL : Get all rows if date is nul

c - 'for' 循环中是否允许多个条件?

php - 存储多个单选按钮数据

PHP imagick COMPOSITE_DSTIN 结果有黑色背景