准备下拉列表并多次使用

时间:2011-06-07 18:35:11

标签: php mysql html loops drop-down-menu

我有一个待售区域的数据库,我将其显示在一个表格中,供管理员编辑成本,无论是出售还是出售(卖家)。对于卖家,我有一个下拉列表,其中第一个选项是当前所有者以便于使用,然后我只想让它列出可能成为卖家的其他可能用户。

事情是,有200个区域,我不想遍历每个区域的每个用户,以便在列表中显示它们。有没有办法我每次都可以准备好许多而不是循环。像将字符串作为字符串准备然后将其作为HTML插入?如果可能的话,不知道如何这样做。

提前致谢。[

3 个答案:

答案 0 :(得分:1)

让我们说你以这种方式列出你的名单:

$str = "<select>";
$result = mysql_query("select * from sellers");

while($row=mysql_fetch_assoc($result)){
  $str.= '<option value="'.$row['id'].'">'.$row['name'].'</option>';
}

$ STR = “”;

您只需输出您希望列表出现的任何位置。 此外,您不必将默认情况下选择的那个放在顶部,您也可以将“selected”一词添加到选项标签中,如下所示:

<option value='1' selected>John Doe</option>

答案 1 :(得分:0)

如果我正确理解了这个问题。您需要创建一个选项标签数组。

  $Name = array();
  $q = "SELECT name  FROM  users";
  $r = mysqli_query ($dbc, $q) or die("Error: ".mysqli_error($dbc));

   while($row = mysqli_fetch_array($r)){
   $Name[] = "<option value='$row[\"name\"]'>$row[\"name\"]</option>";
    }

然后,只要您需要,就可以像这样循环遍历数组:

       <select id='thisselect' name='thisselect'>  
       <?php
       foreach($Name as $key =>$line){
       echo "$line";
         }
         ?>
       </select>

答案 2 :(得分:0)

所有答案都很好,但我建议你将逻辑与内容本身分开,而不是用连接字符串完成所有这些,你应该这样做:

<select id="region" name="region">
  <?php foreach($regions as $key => $region) ?>
    <option value="<?php echo $key ?>"><?php echo $region ?></option>
  <?php endforeach; ?>
</select>