【问题标题】:Why is my loop producing empty <option></option> tags in my <select>?为什么我的循环在我的 <select> 中产生空的 <option></option> 标记?
【发布时间】:2011-12-24 10:48:32
【问题描述】:

我有以下代码:

<?php 
        $a= 11;
        echo "<select name='rabboSelect' style='width:300px;'>";
        $sqlQuery="SELECT * FROM writers";
        $result=sql($sqlQuery);
        while($row = mysql_fetch_array($result))
        {
            $a .= "<option value='" .$row["ID"]."'>" . $row["name"] . "<option>";
        }
        echo str_replace("<option></option>", "", $a);;
        echo "</select>";
        ?>

在 html 中,它在每个之后添加 &lt;option&gt;&lt;/option&gt;,即使我尝试删除它:

<select name="rabboSelect" style="width:300px;">11<option value="2">הרב מילר</option><option></option><option value="3">משה דוויד</option><option></option><option value="4">קלמי גריינמן</option><option></option><option value="5">בנימין יעבץ</option><option></option><option value="8">אליהו פרץ</option><option></option></select>

我怎样才能阻止这种情况发生?

【问题讨论】:

  • 你想达到什么目的?你的问题不清楚

标签: php html select tags replace


【解决方案1】:

首先,我想知道你为什么要设置$a=11; - 你的意思可能是$a='';

接下来,您在结束 option 标记中缺少 /。如果您尝试查看源代码而不是查看 DOM,您会看到它而不是额外的选项。

【讨论】:

  • 非常感谢您,它非常有帮助
  • 这是正确的。您永远不会输出&lt;/option&gt;,因此浏览器正在为您关闭标签。但是,因为您输出了一个&lt;option value=...&gt; 标记和一个&lt;option&gt; 标记,所以浏览器在每个打开&lt;option&gt; 之后插入两个关闭&lt;/option&gt;s。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
相关资源
最近更新 更多