PHP变量在<option> </option>中被截断

时间:2012-04-18 18:39:10

标签: php mysql html drop-down-menu

while ($row = sqlite_fetch_array($result))
{
$category = $row[0];
    echo "<option value=". $category .">". $category ."</option>\n";

} 

好吧基本上,$ category是一个字符串,如:Java网络编程,在'VALUE'部分,它只通过“Java”,在第二部分,它通过整个字符串?

任何理由,因为这是至关重要的。我试过了:

<option value=$category>

仍然没有运气,我只是不明白为什么它适用于一个变量而不是另一个?

4 个答案:

答案 0 :(得分:4)

引用您的属性,并通过htmlentities($value, ENT_QUOTES)对其进行编码,以防它们包含内部引号。

echo "<option value='". htmlentities($category, ENT_QUOTES) ."'>". $category ."</option>\n";

答案 1 :(得分:4)

对我来说,这似乎是一个缺失的引号问题:

while ($row = sqlite_fetch_array($result))
{
    $category = $row[0];
    echo '<option value="'. $category .'">'. $category ."</option>\n";
} 

答案 2 :(得分:3)

您需要引用HTML属性。

echo "<option value='". $category ."'>". $category ."</option>\n";

答案 3 :(得分:0)

我不确定为什么会发生这种情况,如果你试试这个应该有效

echo "<option value='". $category ."'>". $category ."</option>\n";

只需将$类别包含在''中,就像我一样。

希望这有帮助