0

新手来了 我试图在一个表单上显示多个问题,其中多项选择答案显示为单选按钮。用户应该能够为每个问题选择一个答案(单选按钮)。

我的问题是,一旦我显示问题和答案,我只能在表单上选择一个单选按钮(而不是每个问题)。在下面的代码中,qid 是问题 ID,aid 是答案 ID。对于从数据库中检索到的每个问题,单选按钮组将获得分配给名称的问题编号。

例如:问题 1 有 4 个名称 = 1 的多项选择答案,问题 2 有 4 个名称 = 2 的多项选择答案,依此类推。

因此,当用户选择问题 1 的答案并选择问题 2 的答案时,会清除问题 1 的选定答案。

<body style="margin: 100px;">
    <?php foreach ($questions as $question) : ?>
        <small>(<?php echo $question['qid']; ?>)</small>
        <strong><?php echo $question['qdesc']; ?></strong>

        <ol>
           <?php foreach ($answers[$question['qid']] as $answer) : ?>
                <li><label><input type="radio" name=$question['qid'] value=$answer['aid']><?php  echo $answer['adesc']; ?></label></li>               
           <?php endforeach; ?>
        </ol>
    <?php endforeach; ?>
</body>
4

2 回答 2

1

您的单选按钮名称中的 PHP 代码缺少开始和结束 PHP 标记(也缺少引号):

<li><label><input type="radio" name="q_<?php echo $question['qid']; ?>" value="<?php echo $answer['aid']; ?>"><?php  echo $answer['adesc']; ?></label></li>               

您可能还想包含一个前缀(如上),以便名称不仅仅是数字。

因为您的广播组都具有相同的名称,这意味着它们都被视为一个组,因此只允许您选择一个。

于 2013-01-14T17:48:27.710 回答
1

作为上述答案的一个小补充。

<li>
<label for="qid_<?php echo $question['qid']; ?>">
<input type="radio" id="qid_<?php echo $question['qid']; ?>" name="q_<?php echo $question['qid']; ?>" value="<?php echo $answer['aid']; ?>">
<?php  echo $answer['adesc']; ?>
</label>
</li> 

现在您可以在标签中输入后单击文本,单选按钮将被选中。

标签属性 [for] 对应于其中的输入属性 [id]

于 2013-01-14T18:29:24.030 回答