Если бы у меня была поле выбора
<select><option>...<option></select>
и у меня был массив значений от 1 до 12
используя php, как я буду автоматически заполнять этот флажок, используя этот массив?
предположим, что массив выглядит так:
$array = array( 1=>"My first option", 2=> "My second option" ); <select> <?php foreach($array as $key => $value) { ?> <option value="<?php echo $key ?>"><?php echo $value ?></option> <?php }?> </select>
Вы можете сделать свою собственную простую функцию, как показано ниже:
function generateSelectFromArray($array){ // echo your opening Select echo "<select>"; // Use simple foreach to generate the options foreach($array as $key => $value) { echo "<option value=' $key '> $value </option>"; } echo "</select>"; }
Применение:
$array = array( 1=>"My first option", 2=> "My second option" ); generateSelectFromArray($array);
Нет единственного способа сделать это, но вы можете сделать что-то вроде:
<select> <?=getMyOptions()?> </select>
где getMyOptions () – вызов функции, который извлекает параметры (например, из базы данных) и печатает каждый в формате
<option value="x">XXX</option>
Лично я склонен использовать общую функцию, которую я называю printAsOptions (). Эта функция принимает массив объектов. Он ожидает, что объекты в массиве имеют поле под названием «id» и поле «имя». Он выполняет итерацию через массив и печатает вариант, как указано выше для каждого элемента. Таким образом, вы можете создать одну функцию для извлечения массива объектов (например, из базы данных) без смешивания в логике представления. Логика представления обрабатывается общей функцией printAsOptions ().