【发布时间】:2014-11-05 21:03:01
【问题描述】:
我有一个 div 语句,里面有两个嵌套的 div。第一个嵌套 div 是一个表单,其中包含一个下拉菜单,允许用户选择基本的学校科目:
<form id="request" action="<?php echo $_SERVER['PHP_SELF']?> method="post">
<div id='d2'>
<p id='p2'>Subject:
<select id="s" name="subject">
<option value="English">English</option>
<option value="Social Studies">Social Studies</option>
<option value="Math">Math</option>
<option value="Science">Science</option>
</select>
</p>
<input type="button" value="Find"/>
</div>
</form>
第二个嵌套的 div 将使用 PHP 打印出一个先前初始化的可以帮助学生用户的导师数组,以及一个允许用户选择特定导师的链接。请原谅我的格式不太好,我还是个初学者:
<div id='div3'>
for ($i=0; $i<count($tutors); $i++)
{
echo "<div>'".$tutors[$i]."'</div><br/>"
. '<a href = "SelectedTutor.php">Choose me</a>' . "<br/>";
}
</div>
该数组在 php 类的最开始时通过连接到 MySQL 进行初始化,然后从数据库中提取导师用户和学生用户选择的主题的导师。再次,请原谅我的任何错误,我还在学习:
<?php
if ($_SERVER['REQUEST_METHOD']=='POST')
{
$sub = $_POST['subject'];
$con = mysqli_connect("127.0.0.1", "root", "//removed", "mydb");
$msg = "";
if (mysqli_connect_errno())
{
$msg = "Failed to connect to MySQL: " . mysqli_connect_error();
echo $msg;
}
$query = mysqli_query($con, "SELECT * FROM User WHERE Role = tutor AND Subject ='".$sub."'");
$tutors = array();
while ($row = mysqli_fetch_assoc($query))
{
$tutors[] = $row["Username"];
}
}
else
{
echo "Failed form.";
}
?>
现在最困扰我的问题是失败的表单总是显示在屏幕上。我怀疑这是因为表单已嵌套在 div 中。有没有办法解决?还是其他问题?
我还想知道代码是否确实会在第二个嵌套 div 中显示我想要的内容,或者其中是否也存在错误(我稍后会设置样式)。
【问题讨论】:
-
你在 PHP 中使用
<div id='div3'> for ($i=0; $i<count($tutors); $i++)...吗?如果没有,请执行<div id='div3'><?php for ($i=0; $i<count($tutors); $i++)... ?>或类似操作。 -
好的,在循环周围添加了 。好点,但我仍然没有让表单工作。
-
这个
$sub = $_POST['s'];应该是$sub = $_POST['subject'];你使用ID作为 POSTid="s"POST 需要一个命名元素而不是一个 id。 -
是的,我注意到了。改了,还是发不了。我的 div 语句的格式是否奇怪?就像我应该消除其他两个 div 嵌套的 div 吗?解决起来很麻烦,但如果必须这样做,我会这样做。
-
action="<?php echo $_SERVER['PHP_SELF']?>缺少引用的另一件事应该是action="<?php echo $_SERVER['PHP_SELF']?>"