У меня есть представление в моем приложении 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 ) )
Как вы можете видеть, каждый элемент массива может иметь до трех местоположений, определенных внутри. Я хотел бы создать поле со списком, в котором есть все местоположение 1. Таким образом, другими словами, в качестве опций будут использоваться «США», «КАНАДА», «ЮЖНАЯ КОРЕЯ». Когда пользователь нажимает на любое место, я хочу запросить тот же массив и получить следующий уровень вниз – все местоположение 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. Затем, если пользователь выберет «США», я снова запрошу db для всех подзонов в США. Я предполагаю, что первоначальная мысль состояла в том, чтобы сохранить несколько поездок в db. Любые комментарии?