ВЫБОР ВЫБОРА html

У меня в моем php

$sel = " <option> one </option> <option> two </option> <option> thre </option> <option> four </option> "; 

скажем, у меня есть встроенный URL = site.php?sel=one

если я не сохранил эти параметры в переменной, я могу сделать это таким образом, чтобы один из параметров был выбран SELECTED, где значение равно $_GET[sel]

 <option <?php if($_GET[sel] == 'one') echo"selected"; ?> > one </option> <option <?php if($_GET[sel] == 'two') echo"selected"; ?> > two </option> <option <?php if($_GET[sel] == 'three') echo"selected"; ?> > three </option> <option <?php if($_GET[sel] == 'four') echo"selected"; ?> > four </option> 

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

Есть ли способ сделать этот параметр выбранным, где value = $_GET[sel] ?

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

     $options = array( 'one', 'two', 'three' ); $output = ''; for( $i=0; $i<count($options); $i++ ) { $output .= '<option ' . ( $_GET['sel'] == $options[$i] ? 'selected="selected"' : '' ) . '>' . $options[$i] . '</option>'; } 

    Sidenote: я бы определил значение как некоторый идентификатор для каждого элемента, иначе вы можете столкнуться с проблемами, когда два параметра имеют одинаковое строковое представление.

     foreach($array as $value=>$name) { if($value == $_GET['sel']) { echo "<option selected='selected' value='".$value."'>".$name."</option>"; } else { echo "<option value='".$value."'>".$name."</option>"; } } 

    Это простой пример, используя тройной оператор для установки selected = selected

     <?php $plan = array('1' => 'Green','2'=>'Red' ); ?> <select class="form-control" title="Choose Plan"> <?php foreach ($plan as $key => $value) { ?> <option value="<?php echo $key;?>" <?php echo ($key == '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> <?php } ?> </select> 

    Вам не хватает котировок для $_GET['sel'] – исправление этого может помочь решить проблему раньше 🙂

     foreach ($array as $value => $name) { echo '<option value="' . htmlentities($value) . '"' . (($_GET['sel'] === $value) ? ' selected="selected"') . '>' . htmlentities($name) . '</option>'; } 

    Это довольно аккуратно и, я думаю, самоочевидно.