Php HTML页面中MySQL的下拉列表
我试图把从mysql生成的下拉列表放在html页面中,问题是这段代码在php页面中运行良好,但在html页面中没有,我已经把它放在php标签中,但没有显示任何内容,我将感谢任何帮助 这是我的密码Php HTML页面中MySQL的下拉列表,php,html,drop-down-menu,Php,Html,Drop Down Menu,我试图把从mysql生成的下拉列表放在html页面中,问题是这段代码在php页面中运行良好,但在html页面中没有,我已经把它放在php标签中,但没有显示任何内容,我将感谢任何帮助 这是我的密码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Qustions</title>
</head>
<body>
<form action="saveQ.php" method="post" >
<br />
<?php $connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
if (!$connectdb)
{
die('Could not connect :'. mysql_errno());
}
$selestdb = mysql_select_db('iexa', $connectdb) or die ("not selected database");
$qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
echo "Choose the course that you want to create the test for : <br /> ";
echo " <select name='courseID' >Course</option>";
echo "<option value=0>Course </option>";
$curvalue=2;
while ($row = mysql_fetch_assoc($qu)){
echo '<option value="' .$row[ID].'">' .$row[ID].' ' .$row[Name].'</option>';
$curvalue = $curvalue+1;
}
echo "</select> "; ?>
<br />
/// some other unrelated code here
<input type="submit" value="Save Question" />
</form>
</body>
</html>
添加问题
///这里还有一些不相关的代码
可能是因为您这样做:
echo " <select name='courseID' >Course</option>";
echo“课程”;
将其更改为:
echo "<select name='courseID'>";
echo”“;
我个人不喜欢在PHP中呼应html,所以我使用这种方法,在任何情况下,您的问题都是基于html而不是基于PHP的
查询数据库的PHP模型示例:
另请注意
不将DOM与服务器端代码混合是公认的最佳实践。IE您应该将while语句和select框放在一个单独的php视图文件中,该文件可以遍历对象,而不是使用
echo
。这样,服务器处理更少,客户端处理更多。我认为这个脚本就是您想要做的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Qustions</title>
</head>
<body>
<form action="saveQ.php" method="post">
<br />
<?php
$connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
if (!$connectdb) die('Could not connect :'. mysql_errno());
echo " Choose the course that you want to create the test for: <br />
<select name=\"courseID\">
<option value=\"0\">Course </option>\n";
$selestdb = mysql_select_db('iexa', $connectdb) or die ("not selected database");
$qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
while ($row = mysql_fetch_assoc($qu))
echo " <option value=\"{$row["ID"]}\">{$row["ID"]} {$row["Name"]}</option>\n";
echo " </select> ";
?>
<br />
<!-- some other unrelated code here -->
<input type="submit" value="Save Question" />
</form>
</body>
</html>
添加问题
脚本名称应以PHP扩展名结尾,如.PHP或.phtml。不确定“此代码在PHP页面中工作正常,但在html页面中不工作”是什么意思。对于大多数服务器,通常的默认设置是,任何包含PHP代码的脚本都必须具有有效的PHP扩展名,例如.PHP或.phtml.PHP在HTML中不起作用,但HTML在PHP中起作用。这似乎也错了……您是指
课程
?@Travesty3,以防您跳过代码,OP在下一个语句中有和echo
。好的,这很好,但是在您的示例中课程
有什么意义呢?哦!我完全没有看到。我想现在是晚安时间了。:)示例代码已经过udpated,从“查看文件”中删除mysql\u fetch\u assoc
,并将数组传递到foreach循环,而不是使用while。事实上,它看起来根本不像使用$curvalue
。您可以完全删除它。当然,使用MVC这样的代码结构也不错,但在我看来,这似乎超出了这个问题的范围。看起来您只从数据库中获取了一行。对mysql\u fetch\u assoc的一次调用从数据库中获取一行,并将其存储在关联数组中,每个条目表示单个行中的一列。因此while循环的要点是不断地获取行,直到没有更多的行可获取。因此,您的foreach
循环正在一行的列中循环。是的,将来自CI的ActiveRecord与旧式基础php stuf混淆了。。我重新更新了它。我在CodeIgniter或FuelPHP中完成了我的大部分数据库工作,它为您迭代并提供了返回的所有行的数组。。忘记mysql\u fetch\u assoc()
不会在开箱即用的情况下执行此操作,在这种情况下,您之前的注释为true$curvalue是无用的。
<p>Choose the course that you want to create the test for:</p><br />
<select name="courseID">
<option value="0">0 Course</option>
<option value="1">1 Course</option>
<?php while( $row = mysql_fetch_assoc($qu) ): ?>
<option value="<?= $row['ID']; ?>"><?php echo $row['ID'].' '.$row['Name']; ?></option>
<?php endwhile; ?>
</select>
<?php
while ($row = mysql_fetch_assoc($qu)){
<select name="courseID">
<option value="<?= $row['ID']; ?>"><?php echo $row['ID'].' '.$row['Name']; ?></option>
</select>
$curvalue++;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Qustions</title>
</head>
<body>
<form action="saveQ.php" method="post">
<br />
<?php
$connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
if (!$connectdb) die('Could not connect :'. mysql_errno());
echo " Choose the course that you want to create the test for: <br />
<select name=\"courseID\">
<option value=\"0\">Course </option>\n";
$selestdb = mysql_select_db('iexa', $connectdb) or die ("not selected database");
$qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
while ($row = mysql_fetch_assoc($qu))
echo " <option value=\"{$row["ID"]}\">{$row["ID"]} {$row["Name"]}</option>\n";
echo " </select> ";
?>
<br />
<!-- some other unrelated code here -->
<input type="submit" value="Save Question" />
</form>
</body>
</html>