我创建了一个由课程组成的数据库。登录的学生可以使用动态复选框选择课程并通过表单提交。
<form method="POST" action="checkbox.php">
<?php
$sql1 = "SELECT course_id FROM course WHERE sem ='" .$_POST['sem']."'";
$result = mysqli_query($conn,$sql1);
while($row = mysqli_fetch_array($result)) {
echo "<input type='checkbox' name='course_id[]' value='{$row['course_id']}'>" . $row['course_id'];
}
?>
<br>
<button ><span>Submit</span></button>
</form>
表单调用PHP,它由一个数组组成,用于回显值。但是我收到来自php的错误,其中包含&#34;未定义索引12IS36&#34; ..这里12IS36是存储在数据库中的课程。
PHP代码
<?php
//connection
foreach($_POST['course_id'] as $course) {
echo $_POST[$course];
}
?>
答案 0 :(得分:1)
您不应该使用像索引一样的值..
<?php
//connection
foreach($_POST['course_id'] as $course) {
echo $_POST[$course]; // in this case you are using a value like an index
}
?>
你应该使用
<?php
//connection
foreach($_POST['course_id'] as $course) {
echo $course;
}
?>
答案 1 :(得分:1)
也许这会对你有所帮助,我稍微改进了代码并转义了句子以阻止SQL注入。
<form method="POST" action="checkbox.php">
<?php
$sem = mysqli_real_escape_string($conn, $_POST['sem']);
$sql = mysqli_query($conn, "SELECT course_id FROM course WHERE sem='$sem'");
while($row = mysqli_fetch_assoc($sql)) {
echo "<input type='checkbox' name='course_id[]' value='{$row['course_id']}'> ".$row['course_id'];
}
?>
<br>
<button><span>Submit</span></button>
</form>
<?php
//connection
foreach($_POST['course_id'] as $course) {
echo $course;
}
?>