2

我目前正在尝试创建一个表单,其中有三个下拉选项框和一个提交按钮。所有三个下拉框都是从数据库中填充的,我希望将所选选项包含到新查询中并打印出来。此示例仅显示一个下拉菜单

PHP 代码

// Create connection
$con=mysqli_connect('', '', '', '');

// Check connection
if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
    $course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";
}

以上是用于创建下拉列表的代码

HTML

<form="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">

我不知道该怎么做,我尝试了各种不同的技术,但无法找到答案。

最近的尝试

$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 

这带来了一个错误

注意:未定义索引:第 33 行 C:\Users\seanin\Desktop\xampp\htdocs\index.php 中的课程

因此按照建议进行了编辑,但仍然有错误,可能缺少一些小东西。

// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
} 

if ($_POST['button'] == 'Submit') {
$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 
}

还是有这个错误

注意:未定义索引:第 30 行 C:\Users\seanin\Desktop\xampp\htdocs\index.php 中的按钮

提交按钮问题


快完成了,感谢到目前为止的所有帮助。

我需要做什么才能得到结果并打印出来???

4

2 回答 2

2

您的下拉菜单不起作用的原因是缺少“>”用这个替换while循环内的行

$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
于 2013-03-17T15:56:58.150 回答
2

请阅读有关SQL 注入的信息。他们可以摧毁你的生活。

我认为您正在尝试访问以下行中的“课程”,但未定义:

$course = mysqli_real_escape_string($con, $_POST['Course']);

你能提交页面吗?您的 HTML 表单中有一个错误:<form="index.php"不是有效的 HTML 标记,因此您无法提交页面,也就是说,如果您发布了您正在使用的确切代码。你的表格应该是:

<form action="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">
</form> <!-- and don't forget the closing tag -->

您可以通过执行以下操作来检查页面是否已提交:

if ($_POST['button'] == 'Submit') {
    $course = mysqli_real_escape_string($con, $_POST['Course']);
     // please note the missing single quotes, and please read the first line of my answer
    $query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = '$course'");
}

以下行中还有一个无效的 HTML 语法:

$course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";

的格式为<option><option value="value">label</option>.

于 2013-03-17T15:55:17.113 回答