Изменить выбранный параметр в select (форма)

#php #html #html-select

#php #HTML #html-выбрать

Вопрос:

У меня есть начальная группа таких параметров:

 <select name="item[type]">
    <option value="0" class="dr">First</option>
    <option value="1" class="dr">Second</option>
    <option value="2" class="dr">Third</option>
    <option value="3" class="dr">Fourth</option>
</select>
 

Я хочу проверить, определена ли переменная isset($test) . Если это так, то я хочу изменить выбранную опцию, где значение value равно $test . Что-то вроде этого <OPTION SELECTED>

Например. $test = 3 ; таким образом, выбранный параметр должен быть четвертым. Если $test значение пустое или не определено, то первым должен быть выбранный параметр.

Ответ №1:

Один из способов:

 <select name="item[type]">
    <option <?=$test==0?'selected="selected"':'';?> value="0" class="dr">First</option>
    <option <?=$test==1?'selected="selected"':'';?> value="1" class="dr">Second</option>
    <option <?=$test==2?'selected="selected"':'';?> value="2" class="dr">Third</option>
    <option <?=$test==3?'selected="selected"':'';?> value="3" class="dr">Fourth</option>
</select>
 

Другой:

 <? $selected[$test] = 'selected="selected"'; ?>

<select name="item[type]">
    <option <?=$selected[0];?> value="0" class="dr">First</option>
    <option <?=$selected[1];?> value="1" class="dr">Second</option>
    <option <?=$selected[2];?> value="2" class="dr">Third</option>
    <option <?=$selected[3];?> value="3" class="dr">Fourth</option>
</select>
 

Комментарии:

1. Это ооочень умно! Большое спасибо.

Ответ №2:

 <select name="item[type]" id="selectBoxId">
<option value="0" class="dr">First</option>
<option value="1" class="dr">Second</option>
<option value="2" class="dr">Third</option>
<option value="3" class="dr">Fourth</option>
</select>


<script type="text/javascript">
    var test = "<?= $test; ?>";
    if (test != '' amp;amp; parseInt(test)) {
        document.getElementById('selectBoxId').selectedIndex = test;
    }
</script>
 

Комментарии:

1. Я бы использовал JavaScript только для изменения DOM после какого-либо пользовательского ввода. Однако в этом случае вы уже знаете, какой вариант следует выбрать, поэтому нет необходимости использовать JavaScript. Вместо этого убедитесь, что в DOM уже есть вся нужная информация, используя чисто логику PHP, чтобы добавить выбранный атрибут в нужное место. Кроме того, единственный способ, которым это работает, — добавить JavaScript на ту же страницу, чтобы вы могли получить доступ к переменной PHP, или добавить переменную где-нибудь скрытую в DOM, чтобы вы могли получить ее с помощью внешнего JS-скрипта. Оба далеки от идеала.

2. О, я абсолютно согласен. Но мы не знаем, как организованы его скрипты и разделены ли они вообще. Возможно, он использует какую-то систему шаблонов, для которой могут быть определены переменные или что-то еще.. Я просто предоставлял простое решение для очень ограниченной информации, которая была мне предоставлена. Тем не менее, я ценю ваше мнение и полностью согласен с ним.

Ответ №3:

Удалите «[тип]» из имени выбора, сделайте его простым для «элемента». Затем выполните этот код.

$test = isset($_POST['item']) ? $_POST['item'] : "0";

Ответ №4:

 // assuming you are using a loop: in the loop where you create the options
  $selected_html = $test == $loop_var ? ' selected="selected" ' : '';
  echo "<option value="$loop_var" class="dr"$selected_html>$text</option>";