2009-12-09 54 views
1

我有一个php变量($list),它是一个用逗号分隔的值列表。我想弄清楚如何将这个变量转换或输入到HTML选择标签。以下是我迄今为止:将PHP变量输入为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>'; 

我明白,我需要一个循环像“而”或“为”列出$列表中的值,但我不知道确切的语法。任何人都可以帮助我吗?

感谢,

DFM

回答

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>'; 
+0

Hello Greg - Thanks; your例如工作pe rfectly。 – DFM 2009-12-09 18:20:17

3

你需要为每一个列表项(公司名称)的option元素。

<select name="testSelect" id="testId"> 
    <?php foreach ($array as $companyName): ?> 
     <option value="<?php echo $companyName; ?>"><?php echo $companyName; ?></option> 
    <?php endforeach; ?> 
</select> 
+0

这就是你要做的,尽管它跳过'$ list'步骤(你不需要创建'$ list'变量,除非你在代码中的其他地方使用它。 – 2009-12-09 17:37:23

0

implode()

可以模拟破灭()函数与一个循环和字符串连接。

例如:

$out = ''; 
$append = ', '; 

for($arr as $v) 
{ 
    $out .= $v.$append; 
} 

$out = substr($out, 0, (-1) * strlen($append)); 
0

你为什么数组转换成一个逗号分隔的列表摆在首位?一旦你有一个阵列,你可以做

foreach ($company in $list) { 
    echo '<option value="' . htmlspecialchars($company) . '">' . htmlspecialchars($company) . '</option>'; 
} 

输出您的选项。如果由于某种原因确实需要使用逗号分隔列表步骤,则始终可以使用explode(',',$ list)将其转换回数组。

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()功能:

http://www.php.net/manual/en/function.explode.php