Как предварительно выбрать выпадающий список html с php?

Я пытаюсь получить опцию, выбранную с помощью PHP, но у меня кончились идеи!

Ниже приведен код, который я пробовал до сих пор:

<select> <option value="1">Yes</options> <option value="2">No</options> <option value="3">Fine</options> </select> <input type="text" value="" name="name"> <input type="submit" value="go" name="go"> 

Итак, что мне делать?

Программисты ленивы … э … эффективны …. Я бы сделал это так:

 <select><?php $the_key = 1; // or whatever you want foreach(array( 1 => 'Yes', 2 => 'No', 3 => 'Fine', ) as $key => $val){ ?><option value="<?php echo $key; ?>"<?php if($key==$the_key)echo ' selected="selected"'; ?>><?php echo $val; ?></option><?php } ?></select> <input type="text" value="" name="name"> <input type="submit" value="go" name="go"> 
 <select> <option value="1" <?php if ($myVar==1) echo 'selected="selected"';?>>Yes</options> <option value="2" <?php if ($myVar==2) echo 'selected="selected"';?>>No</options> <option value="3" <?php if ($myVar==3) echo 'selected="selected"';?>>Fine</options> </select> <input type="text" value="" name="name"> <input type="submit" value="go" name="go"> 

Это очень простой и простой способ, если я правильно понимаю ваш вопрос.

вы можете использовать это ..

 <select name="select_name"> <option value="1"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='1')?' selected="selected"':'');?>>Yes</option> <option value="2"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='2')?' selected="selected"':'');?>>No</option> <option value="3"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='3')?' selected="selected"':'');?>>Fine</option> </select> 

Прежде всего укажите имя для своего выбора. Затем выполните:

 <select name="my_select"> <option value="1" <?= ($_POST['my_select'] == "1")? "selected":"";?>>Yes</options> <option value="2" <?= ($_POST['my_select'] == "2")? "selected":"";?>>No</options> <option value="3" <?= ($_POST['my_select'] == "3")? "selected":"";?>>Fine</options> </select> 

Что это значит, проверьте, выбрано ли то, что было выбрано, для каждого и когда найденное его эхо «выбрано».

Я полагаю, что вы используете массив для создания ввода select формы. В этом случае используйте массив:

 <?php $selected = array( $_REQUEST['yesnofine'] => 'selected="selected"' ); $fields = array(1 => 'Yes', 2 => 'No', 3 => 'Fine'); ?> <select name='yesnofine'> <?php foreach ($fields as $k => $v): ?> <option value="<?php echo $k;?>" <?php @print($selected[$k]);?>><?php echo $v;?></options> <?php endforeach; ?> </select> 

Если нет, вы можете просто развернуть вышеуказанный цикл и использовать массив.

  <option value="1" <?php @print($selected[$k]);?>>Yes</options> <option value="2" <?php @print($selected[$k]);?>>No</options> <option value="3" <?php @print($selected[$k]);?>>Fine</options> 

Заметки, которые я не знаю:

  • как вы называете свой вклад, поэтому я составил имя для него.
  • каким образом вы обрабатываете ввод формы на серверной стороне, я использовал $_REQUEST ,

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

Кроме того, во многих структурах принято использовать альтернативный синтаксис для просмотра выделенных сценариев.

Я использую inline if

 ($_POST['category'] == $data['id'] ? 'selected="selected"' : false) 

У меня есть 2 php-файла, и я сделал это, и он работает. (это пример), первый код – из одного файла, а второй – из двух файлов.

 <form action="two.php" method="post"> <input type="submit" class="button" value="submit" name="one"/> <select name="numbers"> <option value="1"> 1 </option> <option value="2"> 2 </option> <option value="3"> 3 </option> </select> </form> if(isset ($_POST['one'])) { if($_POST['numbers']=='1') { $a='1' ; } else if($_POST['numbers']=='2') { $a='2' ; { else if ($_POST['numbers']=='3') { $a='3' ; } } 

Этот ответ не относится к конкретному получателю, но может быть полезен для других. У меня была аналогичная проблема с «выбором» правой «опции» по значению, возвращаемому из базы данных. Я решил это, добавив дополнительный тег с приложенным дисплеем: none.

 <?php $status = "NOT_ON_LIST"; $text = "<html> <head> </head> <body> <select id=\"statuses\"> <option value=\"status\" selected=\"selected\" style=\"display:none\">$status</option> <option value=\"status\">OK</option> <option value=\"status\">DOWN</option> <option value=\"status\">UNKNOWN</option> </select> </body> </html>"; print $text; ?> 

Это решение, с которым я столкнулся:

 <form name = "form1" id = "form1" action = "#" method = "post"> <select name = "DropDownList1" id = "DropDownList1"> <?php $arr = array('Yes', 'No', 'Fine' ); // create array so looping is easier for( $i = 1; $i <= 3; $i++ ) // loop starts at first value and ends at last value { $selected = ''; // keep selected at nothing if( isset( $_POST['go'] ) ) // check if form was submitted { if( $_POST['DropDownList1'] == $i ) // if the value of the dropdownlist is equal to the looped variable { $selected = 'selected = "selected"'; // if is equal, set selected = "selected" } } // note: if value is not equal, selected stays defaulted to nothing as explained earlier echo '<option value = "' . $i . '"' . $selected . '>' . $arr[$i] . '</option>'; // echo the option element to the page using the $selected variable } ?> </select> <!-- finish the form in html --> <input type="text" value="" name="name"> <input type="submit" value="go" name="go"> </form> 

Код, который у меня есть, работает до тех пор, пока значения являются целыми числами в некотором числовом порядке (по возрастанию или по убыванию). Он запускает выпадающий список в html и добавляет каждый элемент option в php-код. Он не будет работать, если у вас есть случайные значения, т. Е.: 1, 4, 2, 7, 6. Каждое значение должно быть уникальным.