Сохранение выбранной опции в выпадающем списке выбора с помощью jquery после обновления

0

У меня есть небольшой скрипт, который перезагружает выбор, содержащий псевдонимы пользователей в чате. Когда кто-то нажимает кнопку выбора, javascript обновляет его, повторно заполняя эту опцию с php-страницы, чтобы добавить людей, которые вошли в систему, и удалить тех, кто вышел из системы. Сценарий работает правильно при перезагрузке выбора, но я хочу, чтобы он не потерял выбранный вариант прецедента, если пользователь нажимает кнопку выбора в другое время, чтобы обновить список, и сценарий не поддерживает правильный вариант. Весь код работает правильно, за исключением той части jquery.

JS (библиотека jquery, конечно же, также находится на странице):

<script type="text/javascript">
  $(document).ready(function() {
    $("#Users").focusin(function() {
      var UsersSelect = $('#Users').val();
      $("#Users").load("users.php");
      $('select[name="Users"]').val(UsersSelect);
    });
  });
</script>

Веб-страница html/php:

<div id="UserList" name="UserList">
<select name="Users" id="Users">
<?
$queryprep = "select name FROM users";
$query = $PDO->prepare($queryprep);
$query->execute();
while($rs = $query->fetch()) {
    echo "<option value=".$rs['name'].">".$rs['name']."</option>";
}
$query = null;
?>
</select>
</div>

Страница users.php:

<select name="Users" id="Users">
<?
$queryprep = "select name FROM users";
$query = $PDO->prepare($queryprep);
$query->execute();
while($rs = $query->fetch()) {
    echo "<option value=".$rs['name'].">".$rs['name']."</option>";
}
$query = null;
?>
</select>

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

Теги:
select
refresh
selected

1 ответ

0

AJAX является асинхронным, поэтому вы пытаетесь сбросить значение до того, как данные будут заполнены. После замены параметров выбор снова потеряет значение

Используйте complete callback load()

$("#Users").focusin(function() {
    var $select=$(this),  UsersSelect = $select.val();
    $select.load("users.php", function(){
       /* new html exists now s we can set value*/
       $select.val(UsersSelect);
    });
})
  • 0
    Я заменил код, но теперь выбор не перезагружается вообще.
  • 0
    какие-либо ошибки в консоли? И вы завернули в ready ?
Показать ещё 10 комментариев

Ещё вопросы

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