【问题标题】:Can radio button name attribute have numeric value单选按钮名称属性是否可以具有数值
【发布时间】:2013-06-22 04:17:51
【问题描述】:

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

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

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

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

这是生成 60 个问题及其多项选择答案的 for 循环 - 现在我使用 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 for-loop radio-button forms


    【解决方案1】:

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

    <?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>";
    

    【讨论】:

    • 谢谢 - 更清洁的选择
    【解决方案2】:

    您可以在名称前使用一个简单的字符串,以防您需要一系列或一系列数字。不建议使用数字作为元素的名称。尝试使用以下代码

    <?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="question_<?php echo $question_id;?>" value="<?php echo $answer['answer_id'];?>" /> <?php echo $answer['answer'];?>
            <?php } ?>          
        </div>
        </div>
    <?php 
    } ?>
    

    然后,您可以使用explode() 函数获取问题ID,以使用“_”作为分隔符,将数组的第二个元素作为问题ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2013-01-30
      • 2014-12-26
      • 1970-01-01
      相关资源
      最近更新 更多