【发布时间】:2021-02-25 21:24:54
【问题描述】:
我在 HTML 中制作了以下表格:
<form method="post" action="survey.php">
<div>
<label class="prompt">Favorite CS courses:</label>
<label>
<input type="checkbox" name="courses[]" value="course-web">Web Development
</label>
<label>
<input type="checkbox" name="courses[]" value="course-net">Networking
</label>
<label>
<input type="checkbox" name="courses[]" value="course-gui">GUI
</label>
<label>
<input type="checkbox" name="courses[]" value="course-oop">OOP
</label>
</div>
<div>
<input type="submit" value="Submit Survey">
</div>
</form>
当用户提交表单时,它会提交给我拥有的 PHP 文件。在文件中,我有以下变量分配来接收来自 HTML 的courses[]:
$courses = $_POST["courses"];
在我的 PHP 代码中,我有以下 foreach 循环,以便我可以打印出数组中的值:
// output the user's favorite courses
echo "<p>Favorite Courses:</p> <ul>";
foreach ($courses as $course)
{
echo "<li><strong>$course</strong></li>";
}
echo "</ul>";
问题是,当我输出课程时,结果是这样的:
Favorite Courses:
course-web
course-net
course-gui
course-oop
我想更改我的代码,使其输出如下:
Favorite Courses:
Web Development
Networking
GUI
OOP
我应该如何做到这一点不更改任何 HTML 代码。
我为这个问题想出的最佳解决方案是下面的代码,但我觉得它可以改进很多:
// output the user's favorite courses
echo "<p>Favorite Courses:</p> <ul>";
foreach ($courses as $course)
{
if ($course == 'course-web')
{
echo "<li><strong>Web Development</strong></li>";
}
if ($course == 'course-net')
{
echo "<li><strong>Networking</strong></li>";
}
if ($course == 'course-gui')
{
echo "<li><strong>GUI</strong></li>";
}
if ($course == 'course-oop')
{
echo "<li><strong>OOP</strong></li>";
}
}
echo "</ul>";
【问题讨论】:
-
选项文本不会传输到 PHP,只有
value属性,所以除非您的 PHP 代码可以访问其他来源的文本,否则您无法做到这一点。