У меня есть галерея изображений, которая имеет 3 поля со списком, которые позволяют пользователям фильтровать изображения. Я построил его так, чтобы пользователь мог выбрать 1, 2 или все 3 поля со списком, а затем отправить свой выбор, нажав кнопку отправки. Это отлично работает.
Если пользователь выбирает 1 или 2 из полей со списком, а затем нажимает кнопку «Отправить», невыбранные поля со списком обновятся, и в них будут включены только возможные варианты, основанные на выборе пользователя. Это происходит с обновлением изображений.
Я хотел бы, чтобы невыбранные поля со списком обновлялись без изображений, обновляющихся на .change
поля со списком.
Поскольку Ajax success: function()
загружает подключенный PHP в div
с использованием .html
, я мог думать только об этом, создав второй вызов Ajax для второго файла PHP, который будет запущен поле со списком .change
, но мне это кажется неправильным, и я подозреваю, что просто не знаю, как правильно делать то, что хочу.
Если у вас есть предложения, они будут очень благодарны.
Я включаю jQuery, но не PHP, так как считаю, что это не имеет отношения к этому вопросу. Если я ошибаюсь, дайте мне знать, и я буду очень рад опубликовать это.
JQuery:
$(document).ready(function() {
function loadData(imgFamily, imgClass, imgGender){
$.ajax
({
type: "GET",
url: "filter_test.php",
data: {imgFamily:imgFamily, imgClass:imgClass, imgGender:imgGender},
success: function(images) {
$("#gallery_container").html(images);
comboRefresh(imgFamily, imgClass, imgGender);
submitData(imgFamily, imgClass, imgGender);
},
});
}
//function to refresh combo boxes on change
function comboRefresh(imgFamily, imgClass, imgGender) {
$('.filter').change(function() {
$.get("combo_box_refresh.php", {
imgFamily: $('#imgFamily').attr('value'),
imgClass: $('#imgClass').attr('value'),
imgGender: $('#imgGender').attr('value'),
}, function(refresh){
$("#refine").html(refresh);
submitData(imgFamily, imgClass, imgGender);
});
return false;
});
}
//Function to submit combo boxes and fetch images
function submitData(imgFamily, imgClass, imgGender) {
//Bind the click event to Ajax call on submit
$("#submit").click(function(){
var imgFamily = $('#imgFamily').attr('value');
var imgClass = $('#imgClass').attr('value');
var imgGender = $('#imgGender').attr('value');
//Fetch the images
loadData(imgFamily, imgClass, imgGender);
});
}
loadData(); // For first time page load default results
});