我根据其规格将html5和PHP组合在一起编写此页面。我的问题是,当我将页面连接到一个特定的数据库(我在这个页面上做了两次)时,第二个连接显示我完美布局的表格中的值,但是第一个连接给了我一个带空格的下拉菜单。菜单假设按字母顺序显示所有50个状态,就像它在下面的表格中一样。菜单中的空白区域似乎等于最多50个状态,我在这些字段中没有显示任何文本。我错过了什么?我在这个网站上已经尝试了几种不同的方式,但结果却相同。
以下是HTML和PHP的一部分:
<html>
<body>
<form>
<!-- Drop Down set up for Database -->
<select name = "state">
<option value ="default">Select a State</option>
<!-- Retrieve Data from Database -->
<?php
$db=pg_connect("dbname=etc..");
$query = "select state_name";
$query .= " from state_t";
$query .= " order by state_name";
$dbResult = pg_query($query);
if (!$dbResult)
{
die("Database error...");
}
$num = pg_num_rows($dbResult);
if ($num == 0)
{
echo '<tr><td colspan="2">';
echo 'Database Query Retrieved Nothing!</td></tr>';
}
while ($num = pg_fetch_array($dbResult))
{
$state_name = pg_Result($dbResult,'state_name');
echo '<option value="$num[$state_name]"</option>';
}
?>
</select>
</form>
</body>
</html>
答案 0 :(得分:1)
因为语法错误?
尝试:
while ($num = pg_fetch_array($dbResult))
{
$state_name = pg_Result($dbResult,'state_name');
echo '<option value="$num[$state_name]">' . $num[$state_name] . '</option>';
}
答案 1 :(得分:0)
选择框本身的基本语法错误
语法是
<select>
<option value="a"> A </option>
<select>
其中a =如果选择此选项,您希望从此选项中获取的值, A =要显示给用户的值
所以你的编码应该是
while ($fet = pg_fetch_array($dbResult))
{
echo "<option value='$fet[state_name]'>".$fet['state_name']."</option>";
}
其中state_name是表中状态的字段名称
答案 2 :(得分:0)
您可以尝试:
echo '<option value="$num["$state_name"]" > $num["$state_name"] </option>';
而不是:
echo '<option value="$num[$state_name]"</option>';