Сохранить выбранное значение раскрывающегося списка после обновления страницы - PullRequest
0 голосов
/ 08 апреля 2020

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

Что происходит:

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

Это мой код:

<script>
function refreshPage(passValue){
    window.location="index.php?cat_page=admin_post&sw_cat=sw_catn="+passValue;
}
</script>


<div class="form-group col-md-4">
    <label for="inputState">Your health proplem</label>
    <select name="illness_id_cat" class="form-control" onchange="refreshPage(this.value);" >
<?php 
while(mysqli_stmt_fetch($stmt)){
    echo "<option value='{$illness_id_cat}'>{$illness_name_cat}</option>";
}
?>
    </select>
</div>

Эта опция тоже не работает:

<script>
var selectedItem = sessionStorage.getItem("SelectedItem");  
$('#dropdown').val(selectedItem);

$('#dropdown').change(function() { 
    var dropVal = $(this).val();
    sessionStorage.setItem("SelectedItem", dropVal);
});
</script>

<div class="form-group col-md-4">
    <label for="inputState">Your health proplem</label>
    <select name="illness_id_cat" class="form-control" id="dropdown" >
<?php 
while(mysqli_stmt_fetch($stmt)){
    echo "<option value='{$illness_id_cat}'>{$illness_name_cat}</option>";
}
?>
    </select>
</div>

Это я не знаю, как реализовать, что такое "itemname":

<script>
var text = localStorage.getItem("itemname");
if(text !== null) {
    $("select option").filter(function() {
        return this.text == text;
    }).attr('selected', true);
}
</script>

1 Ответ

1 голос
/ 08 апреля 2020

Более традиционный способ сделать это - использовать PHP и получить значение строки запроса, которое вы передаете с помощью команды window.location:

<script>
function refreshPage(passValue){
    window.location="index.php?cat_page=admin_post&sw_cat="+passValue;
}
</script>


<div class="form-group col-md-4">
    <label for="inputState">Your health problem</label>
    <select name="illness_id_cat" class="form-control" onchange="refreshPage(this.value);" >
<?php 
while(mysqli_stmt_fetch($stmt)){
    echo "<option";
    //get the category value from the querystring and check it against the current category value in the loop. If it matches, pre-set the option as selected
    if (isset($_GET["sw_cat"])) {
      if ($_GET["sw_cat"] == $illness_id_cat) echo " selected";
    }
    echo " value='{$illness_id_cat}'>{$illness_name_cat}</option>";

}
?>
    </select>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...