从 Checkboxes 到 PHP 中的文本框
Going from from Checkboxes to form textboxes in PHP
我是编程新手,遇到以下问题。
我在表单复选框中列出了 10 种电影类型。用户选择五部他们最喜欢的电影并点击提交。然后在下一页上,用户必须对他们从 1-5 中选择的 5 种电影类型进行排名(1 是他们最喜欢的,5 是最不喜欢的)。并按顺序回显结果。
复选框页面的代码如下:
<form id="genre" name="genre" method="post" action="picked3.php">
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Adventure"/>Adventure
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Animation"/>Animation
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Biography"/>Biography
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Classic"/>Classic
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Comedy"/>Comedy
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Crime"/>Crime
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Drama"/>Drama
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Spy"/>Spy
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="War"/>War
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Western"/>Western
<input type="submit" value="Submit"></form>
但我需要帮助制作下一页,让用户能够对他们从 1-5 中选择的流派进行排名。我认为这可以通过会话函数来完成,每个变量循环用于在上一页检查的内容和文本框从 1-5 排名,但我不确定。
在你的 picked3.php 中尝试这样的事情。还要记得检查你的数据。
<?php
foreach($_POST['genre'] as $item) {
?>
<div>
Rank the genre <strong><?php echo $item; ?></strong>
<select name="<?php echo $item; ?>">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
<?php
}
?>
这对我有用。
<?php
$name = $_POST['moviegenres'];
if(isset($_POST['moviegenres'])) {
foreach ($name as $moviegenres){
?>
<tr><td nowrap="nowrap">
<input type="number" required="required" id="<?php echo $moviegenres ?>" name="movieranking[<?php echo $moviegenres ?>]" max="5" min="1" /> <?php echo $moviegenres ?>
</td><td><input name="movienames[]" type="text" id="movienames[]" placeholder="<?php echo $moviegenres ?> movie name"/></td></tr>
<?php
}
}
我是编程新手,遇到以下问题。 我在表单复选框中列出了 10 种电影类型。用户选择五部他们最喜欢的电影并点击提交。然后在下一页上,用户必须对他们从 1-5 中选择的 5 种电影类型进行排名(1 是他们最喜欢的,5 是最不喜欢的)。并按顺序回显结果。
复选框页面的代码如下:
<form id="genre" name="genre" method="post" action="picked3.php">
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Adventure"/>Adventure
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Animation"/>Animation
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Biography"/>Biography
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Classic"/>Classic
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Comedy"/>Comedy
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Crime"/>Crime
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Drama"/>Drama
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Spy"/>Spy
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="War"/>War
<input type="checkbox" name="moviegenres[]" id="moviegenres" value="Western"/>Western
<input type="submit" value="Submit"></form>
但我需要帮助制作下一页,让用户能够对他们从 1-5 中选择的流派进行排名。我认为这可以通过会话函数来完成,每个变量循环用于在上一页检查的内容和文本框从 1-5 排名,但我不确定。
在你的 picked3.php 中尝试这样的事情。还要记得检查你的数据。
<?php
foreach($_POST['genre'] as $item) {
?>
<div>
Rank the genre <strong><?php echo $item; ?></strong>
<select name="<?php echo $item; ?>">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
<?php
}
?>
这对我有用。
<?php
$name = $_POST['moviegenres'];
if(isset($_POST['moviegenres'])) {
foreach ($name as $moviegenres){
?>
<tr><td nowrap="nowrap">
<input type="number" required="required" id="<?php echo $moviegenres ?>" name="movieranking[<?php echo $moviegenres ?>]" max="5" min="1" /> <?php echo $moviegenres ?>
</td><td><input name="movienames[]" type="text" id="movienames[]" placeholder="<?php echo $moviegenres ?> movie name"/></td></tr>
<?php
}
}