PHP复选框的问题

时间:2012-08-20 13:59:31

标签: php database

我无法理解我正在研究的调查风格脚本背后的逻辑。

我已经编写了第一部分,我从数据库中提取问题和答案,但我无法弄清楚如何在while循环中为每个问题创建多项选择,然后存储用户具有的值选择。我的大脑正在努力弄清楚:(

我的代码的第一部分是直截了当的我想:

<?php
//retreive questions from database and put into question box

$query = "SELECT `Question`, `Answer` FROM `questions`";

$question = mysql_query($query);

while($row = mysql_fetch_assoc($question)){
?>
<div id="ContainerQuestion">
    <span style="Question">Question <?php echo $row['Question']; ?></span>
// Have A,B,C,D outputted as values in a checkbox and then the text after????
</div>
<?php
}

?> 

我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:2)

你是说这个吗?

while($row = mysql_fetch_assoc($question)){
?>
<div name="ContainerQuestion">
    <span style="Question">Question <?php echo $row['Question']; ?></span><br />
    <input type="checkbox" name="question_<?= $row['Question_ID']; ?>[]" value="A" <?= $row['Answer'] == 'A' ? 'checked="checked"' : '' ?> /> A<br />
    <input type="checkbox" name="question_<?= $row['Question_ID']; ?>[]" value="B" <?= $row['Answer'] == 'B' ? 'checked="checked"' : '' ?>/> B<br />
    <input type="checkbox" name="question_<?= $row['Question_ID']; ?>[]" value="C" <?= $row['Answer'] == 'C' ? 'checked="checked"' : '' ?>/> C<br />
    <input type="checkbox" name="question_<?= $row['Question_ID']; ?>[]" value="D" <?= $row['Answer'] == 'D' ? 'checked="checked"' : '' ?>/> D<br />
// Have A,B,C,D outputted as values in a checkbox and then the text after????
</div>
<?php
}

注意:您不应在循环中为<div>提供静态(读取:非唯一)ID - HTML规则规定ID必须是唯一的。

此外,如果用户只能选择一个选项,则可能需要使用单选按钮。

答案 1 :(得分:0)

$opts = array(
  'a' => 'foo',
  'b' => 'bar',
  'c' => 'baz',
  'd' => 'all of the above'
);

foreach($opts as $key => $val) {
    echo <<<EOL
<input type="checkbox" name="something" value="{$key}" /> {$val}<br />

EOL:
}