Я хочу создать очень простой блок <select>
содержащий только цифры, 1,2,3 и т.д. Поэтому очень просто хочу
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
</select>
Тем не менее, я хотел бы использовать PHP для генерации параметров вместо того, чтобы создавать их вручную.
Как я могу это сделать?
Вы можете использовать это:
<select>
<?php
define('MAX_OPTIONS', 6);
for($optionIndex=1; $optionIndex <= MAX_OPTIONS; $optionIndex++){
echo '<option>' . $optionIndex . '</option>';
}
?>
</select>
Обратите внимание, что тег open и close для <select>
- это прямой вывод, а не PHP-код, таким образом, теги PHP.
Вы также можете просто распечатать все через PHP:
<?php
define('MAX_OPTIONS', 6);
echo '<select>';
for($optionIndex=1; $optionIndex <= MAX_OPTIONS; $optionIndex++){
echo '<option>' . $optionIndex . '</option>';
}
echo '</select>';
?>
намек
Наконец, чтобы сделать небольшой шаг к более структурированному программированию, вы могли бы создать функцию:
<?php
function createSelectBox($optionCount){
$out = '<select>';
for($idx=1; $idx <= $optionCount; $idx++){
$out .= '<option>' . $idx . '</option>';
}
$out .= '</select>';
return $out;
}
?>
А потом назовите его - из PHP (!!) - вот так:
<?php
echo createSelectBox(6);
?>
Так как ваш сгенерированный HTML-код будет выглядеть красиво и функционально, он не будет служить какой-либо практической цели, потому что ни один из них не может работать без тегов <option>
которые обслуживаются атрибутом value
(который должен содержать значение, представляющее опцию).
Если необходимо, прочитайте это, чтобы лучше понять, как работает select
Вы можете создать selectbox с помощью sprintf, чтобы упростить организацию данных.
<?php
function createSelectBox($arr){
$options= '<select>';
for($i=0; $i <= count($arr); $i++){
$options .= sprintf("<option value='%s'>%s</option>", $arr[$i]['ID'], $arr[$i]['title']);
}
$options .= '</select>';
return $options;
}
?>
for ($i = 0; $i <= 10; $i++){
echo "<option>" . $i . "</option>";
}
<?php
function options($num) {
$options = '';
for ($i = 1; $i < $num + 1; $i++)
{
$options .= "\t<option>" . $i . "</option>\n";
}
return $options;
}
?>
<select>
<?php echo options(6); ?>
</select>
Эта функция выводит запрошенный код.
$number
. Как мне это сделать?form
(которая должна включать сценарийselect
на PHP на вашем сервере, который затем сделает все остальное. Однако для этого потребуется сначала добавить атрибутvalue
для каждойoption
и датьselect
атрибутname
(и, как упоминалось ранее, использованиеform
, содержащейselect
). Есть способы сделать это без формы (с помощью javascript, чтобыselect
запрос как AJAX, но это слишком сложно и вероятно, не имеет смысла в вашей среде программирования.