在SQL中考虑此表:
REGION: COUNTRY:
Lombardia Italy
Sicily Italy
Sardinia Italy
Borgogne France
Corsica France
在PHP中,如何创建一个下拉菜单,在其中循环显示值,我会显示一个唯一的国家/地区名称,并在其下显示不同的区域?
就我所知,建立了一个循环以显示所有区域,但我需要按国家/地区对它们进行视觉划分。
$rowreg=mysql_num_rows($sqlreg);
$sqlregione=mysql_query("select region from regions order by country");
for($z = 0; $z < $rowreg; $z++){
$rigareg = mysql_fetch_assoc($sqlreg);
echo"<option>". $rigareg['regione']."</option>";
我想到了一个嵌套数组,但这只会使我更加困惑。
在此先感谢您的帮助。
答案 0 :(得分:1)
您希望组合框看起来像这样:
France: Borgogne Corsica Italy: Lombardia Sicily Sardinia
您可以使用选项的value属性将国家/地区与区域项目一起存储。
但是,我不认为您可以真正在PHP中调整组合框,以使某些项目不可单击并以另一种字体显示,或者看起来像是标题。在我看来,仍然有两个选择:
填充组合框的代码:
$result = mysql_query("select country, region from regions union all select distinct country, null from regions order by country, region");
while ($row = mysql_fetch_assoc($result))
{
if(is_null($row['region']))
echo '<option value="' . $row['country'] . '" disabled>' . $row['country'] . '</option>';
else
echo '<option value="' . $row['region'] . '#' . $row['country'] . '">' . $row['region'] . '</option>';
}
如果要使国家可点击,请删除disabled
。
(我不精通PHP,因此我的代码中可能会出现一些错误。此外,PHP文档已将mysql_query弃用:https://www.php.net/manual/de/function.mysql-query.php)
答案 1 :(得分:0)
您可以跟踪列表中最后一个国家的输出。如果当前国家/地区不同,则输出国家/地区作为选项。在第一个区域中,该国家/地区将与最后一个国家/地区不同(不会是什么)。
但是,可以在下拉列表中选择这些国家/地区选项。因此,您可能需要添加验证,以确保用户选择了一个地区而不是一个国家。