我在这里有一个数组,我需要将它显示在作为问题的文本区域和作为答案的4个单选按钮上。我把问题和答案组合成一个数组,所以第一个是问题,剩下的是答案。我在文本区显示问题时遇到问题,但答案正确显示在单选按钮上。我想我在循环中遇到了一个问题。对此有什么想法吗?
<?php
$question = array(
array("What is the center of the universe?", "Sun", "Moon", "Jupiter", "Venus"),
array("What is your name?", "Me", "Nothing", "Awesome", "Genuis")
);
?>
<div id="wrapper">
<?php
for($i=0; $i<2; $i++)
{
?> <textarea name="question1" style="width:500px; height:100px"><? echo $question[$i] ?></textarea> <?
for($j=1; $j<5; $j++)
{
?>
<div id="answerswers">
<table style="width:500px">
<tr>
<td><input type="radio" name="question1"><? echo $question[$i][$j] ?></td>
</tr>
</table>
</div>
<?php
}
}
?>
</div>
您的问题是内部数组的第一个元素。您正在回显整个数组,但无法工作(或回显"数组")。
<?php echo $question[$i][0]; ?>
我知道您已经选择了一个答案,但让我与您分享这个答案。这是一个完整的解决方案,使用foreach
。这样做的好处是,它可以处理任何数量的问题和答案。你可以有一个只有2个答案的问题,也可以有10个不同的答案(或任何其他答案)。
<?php
$questions = array(
array("What is the center of the universe?", "Sun", "Moon", "Jupiter", "Venus"),
array("What is your name?", "Me", "Nothing", "Awesome", "Genuis"),
array("Are you smart?", "Yes", "No"),
array("On a scale of 1 to 10, how hungry are you?", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
);
?>
<?php if (!isset($_POST['submit'])) { ?>
<form action="" method="POST">
<?php foreach($questions as $qkey => $question) { ?>
<label>Question <?php echo $qkey+1; ?>:<br />
<textarea name="question_array[<?php echo $qkey+1; ?>]" style="width: 500px; height: 100px;"><?php echo $question[0]; ?></textarea>
</label><br />
<?php foreach ($question as $key => $value) { ?>
<?php if ($key != 0) { ?>
<input type="radio" name="answerswer_array[<?php echo $qkey+1; ?>]" value="<?php echo $key; ?>" id="answerswer<?php echo $qkey; ?>_<?php echo $key; ?>" required />
<label for="answerswer<?php echo $qkey; ?>_<?php echo $key; ?>"><?php echo $value; ?></label><br />
<?php } ?>
<?php } ?>
<br />
<?php } ?>
<input type="submit" name="submit" value="Submit my answers" />
</form>
<?php } else { ?>
<pre><?php print_r($_POST); ?></pre>
<?php } ?>
工作PHP iddle:http://phpfiddle.org/main/code/3q01-w4uk