Ajax: обновлять только те части PHP, которые необходимы - PullRequest
0 голосов
/ 29 августа 2011

У меня есть галерея изображений, которая имеет 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

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...