我有一个下拉列表,其中填充了一个mysql查询

while ($myrow = mysql_fetch_array($phresult))
{
    if ($ID == $myrow["Cmpy_ID"])
    {
        printf("
    <option value=\"%s\" selected>%s</option>\n", $myrow["Cmpy_ID"], $myrow["Provider_Name"]);
    }
    else
    {
        printf("
    <option value=\"%s\">%s</option>\n", $myrow["Cmpy_ID"], $myrow["Provider_Name"]);
    }
}

此查询在应用程序中多次使用,但仅在这种情况下,我希望排除provider_name='foo'的条目。
我不想仅仅为了这个例子而更改它或者包含一个额外的查询,那么在填充一个条目之后,有没有方法从下拉列表中删除它呢?

最佳答案

在php执行期间,当值为Foo时可以跳过:

<?php
while ($myrow = mysql_fetch_array($phresult))
{
    if($myrow["Provider_Name"]=='Foo')
            continue;

    if ($ID == $myrow["Cmpy_ID"])
    {
        printf("
    <option value=\"%s\" selected>%s</option>\n", $myrow["Cmpy_ID"], $myrow["Provider_Name"]);
    }
    else
    {
        printf("
    <option value=\"%s\">%s</option>\n", $myrow["Cmpy_ID"], $myrow["Provider_Name"]);
    }
}

或者通过jquery:
$("#selector option[value='Foo']").remove();

顺便说一句,mysql已经被弃用了,请使用mysqli或pdo。

09-30 00:10