我有以下代码 -
<?php
$input = array();
for($i=0; $i<15; $i++)
$input[]=$i;
shuffle($input);
$file="data.xml";
$test= new SimpleXMLElement($file, null, true); ?>
<?php
for($i=0; $i<5; $i++) {
?>
<form action="submit.php" method="post" id="form">
<p id="ques"><?php echo $test->easy->question[$input[$i]]->ques?> </p>
<p id="option"><input type="radio" name="<?php echo $input[$i]?>" value="0" /><?php echo $test->easy->question[$input[$i]]->option[0]; ?></p>
<p id="option"><input type="radio" name="<?php echo $input[$i]?>" value="1" /><?php echo $test->easy->question[$input[$i]]->option[1]; ?></p>
<p id="option"><input type="radio" name="<?php echo $input[$i]?>" value="2" /><?php echo $test->easy->question[$input[$i]]->option[2]; ?></p>
<p id="option"><input type="radio" name="<?php echo $input[$i]?>" value="3" /><?php echo $test->easy->question[$input[$i]]->option[3]; ?></p>
</form>
<?php } ?>
现在,在提交页面中如何使用输入名称$input[i]
?
$ _POST [我在这里写什么?]?
答案 0 :(得分:1)
好的,首先,你有一个问题,因为你将在页面上有5个不同的form
,我猜你只想要一个。{因此,您需要form
循环之外的for
标记。
提交表单时,您需要检查每个参数。这些将是$_POST[0]
,$_POST[1]
,通过$_POST[14]
- 您需要查看哪些存在。
但是,我不会仅使用数字来命名输入变量。而是让每个radio
都有一个
<input type="radio" name = "i<?php echo $input[$i]; ?>" ...
然后您正在寻找$_POST["i0"]
到$_POST["i14"]
。使用array_key_exists("i0", $_POST)
确定它是否存在(http://php.net/manual/en/function.array-key-exists.php)。
答案 1 :(得分:0)
您已按随机顺序初始化$input
以包含0..15
。接下来,您通过$i
选择了前5个条目,因此input[$i]
将包含0到15之间的随机数。如果您将其用作name
属性,则不会有常量集要使用的POST参数。
所以我建议你这样做:
<form action="submit.php" method="post" id="form">
<p id="ques"><?php echo $test->easy->question[$input[$i]]->ques?> </p>
<input type="hidden" name="question" value="<?php echo $i; ?>">
<p id="option"><input type="radio" name="q<?php echo $input[$i]?>" value="0" /><?php echo $test->easy->question[$input[$i]]->option[0]; ?></p>
....
<p id="option"><input type="radio" name="q<?php echo $input[$i]?>" value="3" /><?php echo $test->easy->question[$input[$i]]->option[3]; ?></p>
</form>
在提交页面阅读$_POST['question']
,这会让您返回$i
,然后阅读$_POST["q$i"]