循环中具有不同标签的多个复选框


Multiple checkboxes with Different label in Loop

<?php
    $r=mysql_query("SELECT city.id as city_id, locality.id,locality.area_name  ".
                   "FROM city, locality  ".
                   "WHERE city.id = locality .city_id order by city_id"); 
    while($rss=mysql_fetch_object($r))
    {
?>
<legend><?=$rss->city_id?></legend>
<input type="checkbox" name="sub_type[]" id="sub_type" value="<?=$rss->id?>" />
<span><?=$rss->area_name?></span><br/>
<?php
    }
?>

我正在显示带有其城市ID的区域名称作为标签。问题是由于周围的 while 循环,为每个区域名称添加了此 ID 标签。如何防止 ID 标签多次重复,以便复选框分组到它们所属的城市 ID 下?

移动<legend>使其位于 while 循环之外

(并使用<label>而不是<span>...您还需要修复输入的id,它们必须是唯一的(

怎么样:

<?php
$r=mysql_query("SELECT city.id as city_id, locality.id,locality.area_name  ".
               "FROM city, locality  ".
               "WHERE city.id = locality .city_id order by city_id"); 
$previous = '';
while($rss=mysql_fetch_object($r)) { ?>
    <?php if (empty($previous) || $previous != $rss->city_id) { ?>
        <legend><?=$rss->city_id?></legend>
    <?php } ?> 
    <?php $previous = $rss->city_id; ?>
    <input type="checkbox" name="sub_type[]" id="sub_type" value="<?=$rss->id?>" />
    <span><?=$rss->area_name?></span><br/>
<?php
}
?>