我有一个php变量($list
),它是由逗号分隔的值列表。我试图弄清楚如何将此变量转换或输入到HTML选择标记。以下是我到目前为止的情况:
$dbquery = @$db->query('SELECT * FROM Company');
while ($queryText = $dbquery->fetchArray()){
$array[]=$queryText['Company_Name'];
}
//the next batch of code, which is not included, converts the $array[] into a variable named $list//
//the values for $list are: Company1, Company2, Company3, Company4...//
//HTML select tag//
echo '<select name="testSelect" id="testId">';
echo '<option value="'.$list.'">'.$list;
echo '</option></select>';
我知道我需要一个像“while”或“for”这样的循环来列出$ list中的值,但我不确定确切的语法。任何人都可以帮助我吗?
谢谢,
DFM
答案 0 :(得分:3)
每个列表项(公司名称)都需要option
元素。
<select name="testSelect" id="testId">
<?php foreach ($array as $companyName): ?>
<option value="<?php echo $companyName; ?>"><?php echo $companyName; ?></option>
<?php endforeach; ?>
</select>
答案 1 :(得分:2)
您需要将explode()
列表放入数组中(如果由于某种原因无法直接使用$array
),请执行以下操作:
$listArray = explode(', ', $list);
echo '<select name="testSelect" id="testId">';
foreach ($listArray as $item)
echo '<option value="'.htmlspecialchars($item).'">'. htmlspecialchars($item) . "</option>\n";
echo '</select>';
答案 2 :(得分:0)
请参阅implode()
您可以使用循环和字符串连接来模拟implode()函数。
例如:
$out = '';
$append = ', ';
for($arr as $v)
{
$out .= $v.$append;
}
$out = substr($out, 0, (-1) * strlen($append));
答案 3 :(得分:0)
为什么首先将数组转换为逗号分隔列表?一旦你有一个数组,你可以做
foreach ($company in $list) {
echo '<option value="' . htmlspecialchars($company) . '">' . htmlspecialchars($company) . '</option>';
}
输出您的选项。如果由于某些原因确实需要使用逗号分隔列表步骤,则可以始终使用explode(',',$ list)将其转换回数组。
答案 4 :(得分:0)
您可以使用explode()
之类的东西将东西列表放入数组中,然后循环遍历......类似于:
$myArray = explode(",", $list);
echo "<select name=\"testSelect\" id=\"testId\">\n";
for($i = 0; $i < count($myArray); $i++) {
// add each option to select list..
echo "<option>" . $myArray[$i] . "</option>\n";
}
echo "</option>\n";
有关PHP explode()
函数的更多信息: