我从数据库中获取一些值并将它们放在下拉选择框中。由于某种原因,每个选项后都有一个空白值,这很奇怪,因为我的数据库不包含任何空白字段。
<select id="school" name="school_name">
<option value=0> Choose</option>
<?php
$con = mysqli_connect("localhost", "root", "****") or die("error".mysqli_error());
mysqli_select_db($con, "newprojectdb") or die("error in database".mysqli_error());
$sql="SELECT school_id, school_name FROM schools";
$result=mysqli_query($con, $sql);
while($row= mysqli_fetch_array($result)){
$school_name=$row["school_name"];
echo '<OPTION VALUE=\'$school_name\'>'.$school_name.'<OPTION>';
}
mysqli_close ($con);
?>
</select>
答案 0 :(得分:2)
你在每个值之间得到一个空格的原因是因为结束<OPTION>
缺失的最后/
并且应该像这样关闭</OPTION>
我也注意到你逃过了
的单引号echo '<OPTION VALUE=\'$school_name\'>'.$school_name.'<OPTION>';
^^ ^^ ^ missing the / slash
它不会回显HTML源代码中的值,而是变量本身$school_name
旁注: 在单引号内设置时,变量无法正确解析,这是您在转义单引号时所做的事情。
示例:
<OPTION VALUE='$school_name'>
将其更改为:
echo '<OPTION VALUE="'.$school_name.'">'.$school_name.'</OPTION>';
它会起作用。
您也可以这样做:(转而使用VALUE的双引号)。
echo "<OPTION VALUE=\"$school_name\">".$school_name."</OPTION>";
<强>脚注强>
为了更清晰,更易读,请在最后使用连接的. "\n"
,如下所示:
echo "<OPTION VALUE=\"$school_name\">".$school_name."</OPTION>" . "\n";
会产生类似的东西:
<OPTION VALUE="St-Alexander">St-Alexander</OPTION>
<OPTION VALUE="St-Peter">St-Peter</OPTION>
<OPTION VALUE="St-John">St-John</OPTION>
而不是
<OPTION VALUE="St-Alexander">St-Alexander</OPTION><OPTION VALUE="St-Peter">St-Peter</OPTION><OPTION VALUE="St-John">St-John</OPTION>
答案 1 :(得分:0)
请找到您需要的更改。感谢
更改
echo '<OPTION VALUE=\'$school_name\'>'.$school_name.'<OPTION>';
以强>
echo "<option value=\"$school_name\"> $school_name </option>";