Изменить значение опции выбора при загрузке страницы - PullRequest
0 голосов
/ 05 апреля 2019

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

Вот код.

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all">Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic">Location B</option>
</select>        

Так, например, если у меня есть переменная PHP $defaultLocation = "Location B", выпадающий список должен автоматически выбрать «Местоположение B» из списка при загрузке страницы.

Надеюсь, это понятно.

Ответы [ 6 ]

0 голосов
/ 05 апреля 2019

Обычно мы используем выпадающие значения вместо текстов, то есть «все» или «vic» вместо «Местоположение A» или «Местоположение B».В любом случае, вы также можете использовать выражение «если»:

<select name="_sft_location[]" class="sf-input-select" title="">
<option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
<option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all"  <?php if($defaultLocation == "Location A") {echo 'selected';} ?> >Location A</option>
<option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" <?php if($defaultLocation == "Location B") {echo 'selected';} ?> >Location B</option>

0 голосов
/ 05 апреля 2019

Для этого не требуется javascript / jquery, а вы просто хотите изменить выбор без кода в зависимости от этого изменения onload

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

<?php 
  function defaultLocation($location){
     global $defaultLocation;
     return ($defaultLocation == $location) ? 'selected' : '';
  }
?>

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all" <?php echo defaultLocation('Location A'); ?>>Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" <?php echo defaultLocation('Location B'); ?>>Location B</option>
</select>     
0 голосов
/ 05 апреля 2019

Спасибо за помощь.Я закончил с этим решением

    jQuery(document).ready(function( $ ) {
     $('select').find('option[value=Location B]').attr('selected','selected');
    });

Приветствия,

0 голосов
/ 05 апреля 2019

Попробуйте, надеюсь, это вам поможет

$(".sf-input-select select").val("Location B");
0 голосов
/ 05 апреля 2019

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

<select class="sf-input-select" name="_sft_location[]" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">
        All Locations
    </option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all">
        Location A
    </option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic"
    <?php (!empty($defaultLocation) && $defaultLocation == 'Location B' ? 'selected':'')
    ?>>
        Location B
    </option>
</select>
0 голосов
/ 05 апреля 2019

Вам необходимо использовать selected атрибут <option>

Итак, если нужно выбрать Местоположение A и Местоположение B, ваш код будет:

Если ваши опции генерируются во время выполнения из PHP, вам нужно добавить туда условие if.

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all" selected="selected">Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" selected="selected">Location B</option>
</select>   
...