Как изменить опцию выбора программно в bootstrap 4? - PullRequest
0 голосов
/ 05 мая 2018
<li class="nav-item">
    <div class="form-group">
        <select class="custom-select custom-select-lg mb-3 text-white" id="materialType" onchange="typeChange('materialType')" style="background-color: transparent;border: none">
          <option value="Material Type">Material Type</option>
          <option value="All">All</option>
          <option value="Mud">Mud</option>
          <option value="Cloth">Cloth</option>
          <option value="Thread">Thread</option>
          <option value="Jute">Jute</option>
          <option value="Cotton">Cotton</option>
          <option value="Can">Can</option>
          <option value="Bamboo">Bamboo</option>
        </select>
    </div>
</li>

Когда я обновляю страницу, выбранное значение в функции typeChange возвращается к первому параметру, который Material Type. Как я могу изменить это после обновления страницы?

функция typeChange

function typeChange(type)
    {
        //alert('type change'); 
        var typeValue = document.getElementById(type).value;
        $.ajax({
            url: 'typeChange.php',
            type: 'POST',
            data:
            {
                type: type,
                typeValue: typeValue
            },
            success: function(data)
            {
                alert(data);
                window.location.href = 'test.php?id=2';
                //$(type).select(typeValue);
            },
            error: function(data)
            {
                //alert('signup error');
                console.log(data);
            }            
        });
    }

Я бы хотел сделать это: $(type).setValue(typeValue); Редактировать 1

Я пытался сделать

window.location.href = 'test.php?id=2';
$(type).val(typeValue);

но, похоже, не работает.

Редактировать 2

Я тоже пробовал

window.location.href = 'test.php?id=2';document.getElementById(type).value = typeValue;

Но это тоже не работает.

Редактировать 3

Я также использовал значение опции выбора в СЕССИИ $_SESSION['materialType']

Редактировать 4
Моя опция выбора есть в navber

image.png

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

это просто с помощью jquery:

$('#selectid').val(variable);
$('#selectid').trigger('change');

Конечно, 'переменная', которую я положил, есть значение = '' в выборе, и должна быть равна одному значению опции.

0 голосов
/ 05 мая 2018

Ваше мышление потока процесса нуждается в корректировке. Вы не можете установить значение внутри $.ajax, потому что вы перезагружаете страницу. Ни одно состояние из текущей загрузки страницы не сохраняется браузером для следующей загрузки

Это означает, что вам нужно установить значение на следующей странице загрузки

Предполагая, что главная страница является php-файлом, вам нужно что-то вроде следующего:

<?php
   session_start();
   $type = isset($_SESSION['materialType']) ? $_SESSION['materialType'] :'';// default to empty string or whatever value you want
?>

<script>
  $(function(){
    $('#materialType').val('<?php echo $type ?>');
  })
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...