ajax несколько выпадающих списков и радиобоксов сохраняют элементы после отправки - PullRequest
0 голосов
/ 19 июня 2020

У меня есть набор радиобоксов и 2 раскрывающихся списка, которые заполнены ajax и php. Они зависят друг от друга. Он работает нормально, но я хотел бы сохранить элементы в моих раскрывающихся списках после отправки, чтобы пользователь мог изменить выбор в любом раскрывающемся списке. Но я также хочу, чтобы выбор пользователя отображался. Форма используется для фильтрации набора данных в таблице

здесь html

<form name="filtrer-evo" action="<?= htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
    <fieldset>

        <div class="row justify-content-center mb-2">
            <div class="col-xl-4 text-main-blue">
                Sélectionnez un statut
            </div>
            <div class="col-xl-5">
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio"  <?= checkChecked(0,'etat')?> value="0" id="etat" name="etat">
                    <label class="form-check-label pr-5" for="etat">En attente de validation</label>
                </div>

                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio"  <?= checkChecked(1,'etat')?> value="1" id="etat" name="etat">
                    <label class="form-check-label pr-5" for="etat">En cours</label>
                </div>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio"  <?= checkChecked(2,'etat')?> value="2" id="etat" name="etat">
                    <label class="form-check-label pr-5" for="etat">Terminée</label>
                </div>
            </div>
        </div>


        <div class="row justify-content-center">
            <div class="col-xl-4 text-main-blue">
                Sélectionnez un salarié
            </div>
            <div class="col-xl-5">
                <?php foreach ($listResp as $key => $resp): ?>

                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="radio"  <?= checkChecked($resp['id'],'id_resp')?>  value="<?=$resp['id']?>" id="resp" name="resp">
                        <label class="form-check-label pr-5" for="resp"><?=$resp['resp']?></label>
                    </div>

                <?php endforeach ?>
            </div>
        </div>


        <div class="row justify-content-center">
            <div class="col-xl-4 mt-3 pt-2 text-main-blue">
                Sélectionnez une application :
            </div>
            <div class="col-xl-5">
                <div class="form-group">
                    <label for="appli"></label>
                    <select class="form-control" name="appli" id="appli">
                        <option value="">Sélectionner</option>
                    </select>
                </div>

            </div>
        </div>
        <div class="row justify-content-center">
            <div class="col-xl-4 mt-3 pt-2 text-main-blue">
                Sélectionnez un module :
            </div>
            <div class="col-xl-5">
                <div class="form-group">
                    <label for="module"></label>
                    <select class="form-control" name="module" id="module">
                        <option value="">Sélectionner</option>
                    </select>
                </div>

            </div>
        </div>

        <div class="row justify-content-center">
            <div class="col-xl-9 pt-3 text-right">
                <button class="btn btn-primary" name="filtrer">Filtrer</button>
            </div>
        </div>
    </fieldset>
</form>

ajax

$("input:radio[name='resp']").click(function () {
    var resp=$('input[name="resp"]:checked').val();
    $.ajax({
        type:'POST',
        url:'ajax-get-evo.php',
        data:{id_resp:resp},
        success: function(html){
            $("#appli").append(html);
            console.log(html);
        }
    });
});

$('#appli').on("change",function(){
    var appli=$('#appli').val();
    $.ajax({
        type:'POST',
        url:'ajax-get-evo.php',
        data:{id_appli:appli},
        success: function(html){
            $("#module").html(html)
        }
    });
});

});

php

$evoMgr=new EvoManager($pdoEvo);
$arrayPlateformeAppli=EvoHelpers::arrayAppliPlateformeName($pdoEvo);


if(isset($_POST["id_resp"]) && !empty($_POST["id_resp"])){
    $datas=$evoMgr->getListAppliResp($_POST['id_resp']);
    if(!empty($datas)){

        foreach ($datas as $key => $data) {
            echo '<option value="'.$data['id'].'">'.$arrayPlateformeAppli[$data['id']].' - '.$data['appli'].'</option>';

        }
    }
}

if(isset($_POST["id_appli"]) && !empty($_POST["id_appli"])){

    $datas=$evoMgr->getListModule($_POST["id_appli"]);
    if(!empty($datas)){
        echo '<option value="">Sélectionner un module</option>';
        foreach ($datas as $key => $data) {
            echo '<option value="'.$data['id'].'">'.$data['module'].'</option>';

        }
    }else{
        echo '<option value="0">Aucun module</option>';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...