Установите флажок, теряя выбранную опцию при обновлении

0

Я пытаюсь создать окно выбора, которое обновляет его параметры при выборе пользователем, но я столкнулся с проблемой, которую я не могу решить. Будучи еще новичком с jquery, я уже просил совета для одной и той же программы: сохранение выбранной опции в выпадающем меню select с jquery после обновления.

Следуя предложению, теперь он работает почти полностью, но я бы хотел, чтобы выпадающий список вел себя как не динамический, сохраняя выбранную опцию при открытии, за исключением того, что список опций также обновлен: теперь он "почти" сохраняет выбранное значение (он сохраняется в раскрывающемся списке), но сбрасывается до первого параметра, когда элемент теряет фокус на других на странице, и я не знаю, как решить проблему. Я попытался передать переменную с ajax на php-страницу, чтобы она была выбрана при обновлении, но она по-прежнему сбрасывается, когда фокус изменяется.

Код JS:

$(document).ready(function() {
$("#UsersDiv").focusin(function() {
        var UsersSelect = $('#UsersList').val();
        $.get( 
            "userlist.php",
            { UserSelect1: UsersSelect },
            function(data) {
            $('#UsersList').html(data);
            }
        );
    })
    $('#UsersList').val(UsersSelect);
});

Страница html:

<div name="UsersDiv" id="UsersDiv">
<select name="UsersList" id="UsersList">
<option value="User1">User1</option>
<option value="User2">User2</option>
</select>
</div>

Php файл (массив "users" вместо SQL-запроса работает, как работает):

$UserSelect1 = $_GET['UserSelect1'];
$users=array( 'User1','User2','User3','User4','User5');

echo '<select name="UsersList" id="UsersList">';

foreach($users as $list):
echo '<option value="'.$list.'" ';
if ($UserSelect1 == $list) {
    echo 'selected=selected';
}
echo '>'.$list.'</option>';
endforeach;

echo '</select>';

Спасибо всем за ответы.

Теги:
select
refresh
selected

1 ответ

0
$("#UsersDiv")

чем вы назначаете это

 $select=$(this) // $select is $("#UsersDiv");

и чем вы пытаетесь получить val из div

 UsersSelect = $select.val() // $select.val() is undefined
  • 0
    Я обновил и протестировал скрипт, теперь он, похоже, все еще теряет переменную или просто не устанавливает ее должным образом после обновления.
  • 0
    Прежде всего, $ (document) .ready (function () {- это функция, которая выполняется при загрузке DOM, поэтому $ ('# UsersList'). Val (UsersSelect); фактически ничего не делайте. Попробуйте отладить ваш запрос - поместите var_dump () в PHP и alert (data) в вашу функцию $ .get success. Трудно сказать, что именно не так, потому что, по моему мнению, этот скрипт теперь работает правильно. Я проверил этот код на своем localhsot, и если на странице загрузки значение select равно User2, то после ajax оно остается выбранным.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню