I am trying to populate an HTML select list using an array of customer names. I am using the following code, but it does not seem to work. I have a function that query an SQL Server database and gets the names. I know that works fine as I am using it in other code, for some reason when I try to populate the select list it is coming up blank. Would it be better or more efficient to use a for loop? What is the best way to accomplish this?
<select name="customers">
<?php
$custNames = getCustomers();
foreach($custNames as $customers){
echo '<option value="' . $customers . '">' . $customers . '</option>';
}
?>
</select>
Have you tried doing a
print_r()orvar_dump()of$custNames. There’s nothing wrong with your foreach loop, so most likely thegetCustomers()function is returning a non-array, or an empty array.And of course, be very careful inserting text that way. A single double-quote in any of the customer names will hose your form:
At least pass the value portion through
htmlspecialchars()to make it a bit safer.