Динамически помечать выбранную опцию в форме, используя HTML и PHP

0

Я создаю форму для обновления некоторых записей в таблице sql.

Для одного из полей у меня будет опция выбора, которая должна быть "выбрана" в значении, которое содержит поле.

Поэтому в идеале у меня было бы что-то вроде этого:

<select id="source" name="source">
    <option <?=$manual?>>MANUAL</option>
    <option <?=$etsy?>>ETSY</option>
    <option <?=$online?>>ONLINE</option>
</select>

Но я хочу сделать его динамичным, поэтому, если у меня есть 100 опций, мне не придется писать 100 переменных, но просто загрузите соответствующее имя переменной словом "selected".

Каков наилучший способ достичь этого?

  • 1
    обновил мой пост. Я думаю, что уже слишком поздно =)
Теги:
select
forms

2 ответа

2
Лучший ответ

Попробуйте что-то вроде этого:

<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"

  • 0
    Как бы это решение было динамичным? Это означает, что если у меня есть 100 вариантов, и все они имеют одну и ту же переменную ($ Attrib), то она не будет сортировать те, которые нельзя выбирать
  • 1
    @ samyb8 Создать массив значений по умолчанию
0

Может быть, вы хотели сделать что-то вроде

<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;?>
  • 0
    Дело в том, что я хочу сделать его динамичным, поэтому, если у меня есть 200 вариантов, мне не нужно обновлять код.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню