HTML中的嵌入式PHP提早结束?
我目前正在创建一个非常基本的网页来测试数据库。我对网络开发非常、非常陌生,所以请容忍我。我试图将php嵌入html中,以便动态填充一个下拉菜单,其中包含数据库中的大学列表。然而,在我将源代码上传到服务器后,查看源代码,嵌入的php代码正在被正确读取。。。它解释if语句中的“>”,我必须结束php,而不是等待“>”。我该如何解决这个问题HTML中的嵌入式PHP提早结束?,php,html,drop-down-menu,Php,Html,Drop Down Menu,我目前正在创建一个非常基本的网页来测试数据库。我对网络开发非常、非常陌生,所以请容忍我。我试图将php嵌入html中,以便动态填充一个下拉菜单,其中包含数据库中的大学列表。然而,在我将源代码上传到服务器后,查看源代码,嵌入的php代码正在被正确读取。。。它解释if语句中的“>”,我必须结束php,而不是等待“>”。我该如何解决这个问题 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.o
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<title>Search</title>
</head>
<h>Search for your university
<body>
<?php
//connection to db stuff
$sql = "SELECT campus FROM universities";
$query = mysql_query($sql);
$options = "";
if (mysql_num_rows($query) > 0) //php code cuts off at ">" and simply prints the rest
{
while($row = mysql_fetch_array($query))
{
$options .= "<option>" . $row['campus'] . "</option>";
}
}
?>
//form stuff
</body>
</html>
搜寻
搜索你的大学
//表格材料
这样的问题表明您安装的PHP存在问题。它应该只在遇到?>
时终止PHP块。如果
会这样做,您将无法进行“大于”的比较
尝试删除一些内容,例如
if()
部分,只保留while循环,看看这是否会改变什么 实际上,您的PHP解释器根本没有触及代码。。。如果您查看源代码,您将看到代码
这将返回一个大的描述性页面,其中包含PHP安装的所有信息。在您能够正常工作之前,您需要开始排除PHP安装无法正常工作的原因。查看源代码,您将看到所有PHP代码
php根本没有在服务器中运行,请检查您的配置。很简单,您的文件扩展名可能是
.html
或其他
将文件重命名为具有
.php
扩展名,以便php解释器知道发生了什么。否则,您的web服务器将提供该页面,就像所有内容都是html一样。阅读您的故事我知道您将页面加载到服务器上。所以我怀疑您的PHP处理程序工作得很好。但是,要在页面上显示PHP输出,需要回显$options变量。在while循环之后尝试以下操作
if (mysql_num_rows($query) > 0) //php code cuts off at ">" and simply prints the rest
{
while($row = mysql_fetch_array($query))
{
$options .= "<option>" . $row['campus'] . "</option>";
}
// Show the dynamicly created options
echo $options;
}
if(mysql\u num\u rows($query)>0)//php代码在“>处截断,只打印其余部分
{
while($row=mysql\u fetch\u array($query))
{
$options.=''.$row['campus'].'';
}
//显示动态创建的选项
echo$期权;
}
您还可以尝试以下代码并将其保存为.php(例如index.php)文件
搜寻
搜索你的大学
//表格材料
我为你的身体标签添加了一个补丁。它被添加到了错误的位置,并且对标签进行了修复。那个是不完整的
无需将文件另存为.php到服务器上以将其解析为php,但建议这样做,其他程序员更容易理解。这可能是一个愚蠢的问题,但您是如何保存页面的?正如其他人所说,服务器没有读取您的php,而“>”被解释为html标记,浏览器会混淆并打印其余内容(但不是之前的内容)。这可能是因为您的php安装没有配置,或者您的页面是一个简单的html页面。事实上,我还有其他几个php页面工作得非常好,包括一个登录页面和一个注册新用户页面。。。然而,这些都是专门的php页面,没有html,然后重定向到html页面。那么,也许服务器无法读取嵌入的php代码?我可以从phpinfo中找到它吗?我将它重命名为.php,现在当我查看页面源代码时,php代码根本不存在,它根本不显示,只显示html代码?它应该出现吗?@jekelija可能是因为你的代码从来没有输出过任何东西。对不起,在注释掉的表单中,我有一些东西,哈哈,当然。。。在所有的错误中,我知道如何修复,但只是错过了。非常感谢,我认为错误不仅仅是因为我的标签放错了位置,而是我忘了关闭它,所以它仍然在寻找“>”字符。。。非常感谢你。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<title>Search</title>
</head>
<body>
<h1>Search for your university</h1>
<?php
//connection to db stuff
$sql = "SELECT campus FROM universities";
$query = mysql_query($sql);
$options = "";
if (mysql_num_rows($query) > 0) //php code cuts off at ">" and simply prints the rest
{
while($row = mysql_fetch_array($query))
{
$options .= "<option>" . $row['campus'] . "</option>";
}
// Show the dynamicly created options
echo $options;
}
?>
//form stuff
</body>
</html>