Я создаю форму для обновления некоторых записей в таблице sql.
Для одного из полей у меня будет опция выбора, которая должна быть "выбрана" в значении, которое содержит поле.
Поэтому в идеале у меня было бы что-то вроде этого:
<select id="source" name="source">
<option <?=$manual?>>MANUAL</option>
<option <?=$etsy?>>ETSY</option>
<option <?=$online?>>ONLINE</option>
</select>
Но я хочу сделать его динамичным, поэтому, если у меня есть 100 опций, мне не придется писать 100 переменных, но просто загрузите соответствующее имя переменной словом "selected".
Каков наилучший способ достичь этого?
Попробуйте что-то вроде этого:
<select id="source" name="source">
<?php
$Attrib = 'selected="';
if ($order['source'] === 'value'){
$Attrib.= 'selected"';
}
else{
$Attrib .= 'false"';
}
?>
<option name="" <?=$Attrib;?>>NAMEHERE</option>
Не говоря уже о том, что вы назначаете ($order['source']
) value
, поэтому оно всегда будет равно "value"
Может быть, вы хотели сделать что-то вроде
<option <?= ($order['source']==='optionname')?'selected':'' ?> > optionname </option>
И было бы лучше нажать опции для некоторого массива. О, это то, что вы имеете в виду.
Вот как я бы это сделал
<?php
$checkedoption = 'flytothemoon'; //the checked option
$options = array('opt1', 'opt2', 'opt3', 'flytothemoon');
foreach($options as $option):?>
<option <?= ($order['source']===$checkedoption)?'selected':'' ?> > $option </option>
<?php endforeach;?>