我这里有一个数组,我需要在textarea上显示这个问题,并在4个单选按钮上作为答案。我将问题和答案组合在一个数组中,因此第一个是问题,其余的是答案。我在textarea中显示问题时遇到问题,但答案正确显示在单选按钮上。我想我在循环中遇到了问题。对此有何想法?
<?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="answers">
<table style="width:500px">
<tr>
<td><input type="radio" name="question1"><? echo $question[$i][$j] ?></td>
</tr>
</table>
</div>
<?php
}
}
?>
</div>
答案 0 :(得分:0)
你的问题是内部数组的第一个元素。你正在回应整个阵列,它无法工作(或回声&#34;阵列&#34;)。
<?php echo $question[$i][0]; ?>
答案 1 :(得分: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="answer_array[<?php echo $qkey+1; ?>]" value="<?php echo $key; ?>" id="answer<?php echo $qkey; ?>_<?php echo $key; ?>" required />
<label for="answer<?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 } ?>
使用PHPFiddle:http://phpfiddle.org/main/code/3q01-w4uk