У меня есть 3 выбора на моей странице. Когда я выбираю несколько вариантов на первых двух выборках, третий заполняется. Он отлично работает с jquery.
Вот HTML:
<form action="results.php" method="get">
<select name="cible[]" id="cible" class="kii-select-cible">
<option value="">Je suis</option>
<option value="52">Demandeur d’emploi</option>
<option value="51">Entreprise / Organisation</option>
</select>
<select name="diplome[]" id="diplome" class="kii-select-diplome">
<option value="">Je recherche</option>
<option value="61">Diplôme Universitaire</option>
<option value="59">Doctorat</option>
</select>
<select name="domaine[]" id="domaine" class="kii-select-domaine">
<option value="">Domaine</option>
</select>
<input id="search-button" name="search-button" value="Trouver" type="submit">
<div id="dom_values" style="display: none">
<div id="cib_dip_52_59_1">
<div class="dom_id">71</div>
<div class="dom_label">MAE - Double compétences</div>
</div>
<div id="cib_dip_52_59_2">
<div class="dom_id">67</div>
<div class="dom_label">Management - Stratégie</div>
</div>
<div id="cib_dip_52_59_3">
<div class="dom_id">69</div>
<div class="dom_label">Management de l'Innovation</div>
</div>
<div id="cib_dip_52_59_4">
<div class="dom_id">68</div>
<div class="dom_label">Management par projets</div>
</div>
</div>
</div>
У меня есть функция с именем displaySelectDomain, и эта функция вызывается всякий раз, когда пользователь меняет выбранный элемент в одном из 2 вариантов выбора:
$('#cible').change(function () {
displaySelectDomain();
});
$('#diplome').change(function () {
displaySelectDomain();
});
Вот содержимое функции, в основном она воссоздает массив из содержимого HTML, скрытого на странице, и может восстановить выбор, в зависимости от выбора пользователя:
function displaySelectDomain() {
var selectedPublic = $('#cible').children("option:selected").val();
var selectedDiplome = $('#diplome').children("option:selected").val();
var selectDomaineOptions = '<option value="">Domaine</option>';
$('#domaine').empty().append(selectDomaineOptions);
if (selectedPublic > 0 && selectedDiplome > 0) {
selectDomaineOptions = '';
for (var i = 0; i < dom_array.length; i++) {
var dom_values = dom_array[i];
if (dom_values.cib_id == selectedPublic && dom_values.dip_id == selectedDiplome) {
selectDomaineOptions = '<option value="' + dom_values.domaine.id + '">' + dom_values.domaine.label + '</option>';
$('#domaine')
.append(selectDomaineOptions)
;
}
}
}
}
Затем я проверяю форму и перенаправляюсь на другую страницу.
Когда я нажимаю кнопку "Назад", выбранные элементы все еще выбираются, но для некоторых причина, jquery всегда возвращает 0 как выбранный элемент.
Поэтому, когда функция displaySelectDomain вызывается при загрузке страницы, она ничего не делает, в то время как для селекторов не выбрано их значение по умолчанию.
Не могли бы вы мне помочь ? Я пытался получить выбранное значение по-разному, но оно всегда возвращает 0, и я не понимаю, почему.
Спасибо за вашу помощь.