我在我的 codeigniter 应用程序中有一个视图,它从数据库中获取一个数组。我想根据数组的内容创建几个组合框。
这是数组的样子:
Array (
[0] => Array (
[L1ID] => 2
[L1Location] => USA
[L2ID] => 3
[L2Location] => New York
[L3ID] => 4
[L3Location] => Manhanttan
)
[1] => Array (
[L1ID] => 2
[L1Location] => USA
[L2ID] => 8
[L2Location] => New Jersey
[L3ID] => 7
[L3Location] => Bergen County
)
[2] => Array (
[L1ID] => 5
[L1Location] => Canada
[L2ID] => 12
[L2Location] => Ontario
[L3ID] => 50
[L3Location] => Toronto
)
[3] => Array (
[L1ID] => 6
[L1Location] => South Korea
[L2ID] => 22
[L2Location] => Gyungido
[L3ID] => 25
[L3Location] => Buchon
)
)
如您所见,数组中的每个项目最多可以定义 3 个位置。我想创建一个包含所有位置 1 的组合框。因此,换句话说,它将有“USA”、“CANADA”、“SOUTH KOREA”作为选项。当用户单击任何位置时,我想查询相同的数组并向下一层 - 所有位置 2 的 - 填充在单独的组合框中。例如,当他们在位置 1 中选择“美国”时,位置 2 组合将显示“纽约”和“新泽西”作为选项。
我已经编写了一些代码来开始循环遍历数组并提取所有 L1(位置 1),但我不知道如何防止添加重复项。
这是我的代码:
<select id="L1locationlist" name="L1locationlist">
<option value=""></option>
<?php
foreach ($locations as $location) {
echo ($location['L1ID'].'<BR>');
echo '<option value="' . $location['L1ID'] . '">' . $location['L1Location'].'</option>';
}
?>
</select>
我只想在组合框中输入一个美国条目。你能告诉我我该怎么做吗?我是否必须创建一个单独的函数来检查它是否已经存在于组合框中?谢谢你。
编辑:
最初的计划是从数据库中获取所有位置信息,然后在客户端,根据用户点击的内容以某种方式动态地深入到不同的位置。但我想我也应该问这是否是一个好的设计?如果我只是对数据库进行单独调用,也许代码会“更干净”。例如,我最初将获取所有位置 1 值。然后,如果用户选择“美国”,我将再次查询数据库以获取美国的所有子位置。我猜最初的想法是保存多次访问数据库。任何意见?