Я пытаюсь создать окно выбора, которое обновляет его параметры при выборе пользователем, но я столкнулся с проблемой, которую я не могу решить. Будучи еще новичком с 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>';
Спасибо всем за ответы.
$("#UsersDiv")
чем вы назначаете это
$select=$(this) // $select is $("#UsersDiv");
и чем вы пытаетесь получить val из div
UsersSelect = $select.val() // $select.val() is undefined