我正在尝试创建一个程序,允许用户输入名称列表(在表单中)。
在下一页,拉动表单创建的值,用户从一系列下拉列表中进行选择,为三个不同的类别选择“优秀”,“好”或“差”(性能,努力)每个名字的出席率。
一旦所有下拉列表都进行了选择,用户就会提交表单。
到目前为止,我有几个输入框允许用户输入名称($ name0和$ name2)。
<form action="form_action.php" method="post">
Name: <input type="text" name="name0"><br />
<br />
Name: <input type="text" name="name1"><br />
<input type="submit">
</form>
然后以最基本的形式显示此数据。
<?php echo $_POST["name0"]; ?><br>
<br />
<?php echo $_POST["name1"]; ?>
我知道我的代码与目前基本相同,但我现在基本上需要添加一些不同的下拉框,允许用户为列表中的每个人做出选择。
答案 0 :(得分:0)
在第一个表单上,您可以将输入的名称更改为names[]
,然后在[{1}}的{{1}}中将这些名称作为数组提供。
$_POST['names']
然后在你的form_action.php
中,你可以简单地在名字数组上做一个foreach循环。
<form action="form_action.php" method="post">
<label>Name 1<input name="names[]"></label>
<label>Name 2<input name="names[]"></label>
</form>
如果您输入了#34; Bob&#34;并且&#34; Ted&#34;作为名称,上面的PHP将生成此HTML:
form_action.php
提交此生成的表单后,<form action="submit_ratings.php" method="post">
<?php foreach ($_POST['names'] as $name): ?>
<h2>Rate <?= $name ?></h2>
<!-- hidden input to pass along name to next step -->
<input type="hidden" name="names[]" value="<?= $name ?>">
<select name="performance[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
<select name="effort[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
<?php endforeach ?>
</form>
脚本会在<form action="submit_ratings.php" method="post">
<h2>Rate Bob</h2>
<!-- hidden input to pass along name to next step -->
<input type="hidden" name="names[]" value="Bob">
<select name="performance[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
<select name="effort[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
<h2>Rate Ted</h2>
<!-- hidden input to pass along name to next step -->
<input type="hidden" name="names[]" value="Ted">
<select name="performance[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
<select name="effort[]">
<option value="excellent">Excellent</option>
<option value="good" selected>Good</option>
<option value="poor">Poor</option>
</select>
</form>
中收到三个数组:submit_ratings.php
,$_POST
和names
。然后你可以这样显示它们:
performance
这种方法的一个优点是,在您的第一个表单上,您可以拥有任意数量的effort
输入,并且所有后续步骤仍然有效。