从PHP数组填充HTML选择列表

时间:2010-09-21 15:38:45

标签: php html

我正在尝试使用客户名称数组填充HTML选择列表。我使用以下代码,但它似乎不起作用。我有一个查询SQL Server数据库并获取名称的函数。我知道在其他代码中使用它时工作正常,出于某种原因,当我尝试填充选择列表时,它会显示为空白。使用for循环会更好或更有效吗?实现这一目标的最佳方法是什么?

<select name="customers">
    <?php
    $custNames = getCustomers();
    foreach($custNames as $customers){
        echo '<option value="' . $customers . '">' . $customers . '</option>';
    }
    ?>
</select>

2 个答案:

答案 0 :(得分:3)

您是否尝试过print_r()var_dump() $custNames。你的foreach循环没有任何问题,因此getCustomers()函数很可能返回一个非数组或一个空数组。

当然,要非常小心地插入文本。任何客户名称中的单引号都会影响您的表格:

<option value="John "The Unknown" Doe">John "The Unknown" Doe</option>

至少将值部分传递给htmlspecialchars()以使其更安全一些。

答案 1 :(得分:0)

如果foreach返回一个数组(或者更具体地说是一个实现getCustomers()接口的对象),Traversable循环就完全没了问题。您可能希望执行var_dump( $custNames );来检查您拥有的实际上是数组,否则您可能希望更改getCustomers()函数以返回数组。