下拉框有额外的空格/值

时间:2014-08-09 03:28:14

标签: php dropdownbox

我从数据库中获取一些值并将它们放在下拉选择框中。由于某种原因,每个选项后都有一个空白值,这很奇怪,因为我的数据库不包含任何空白字段。

<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>

2 个答案:

答案 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>";