Флажок Dynami c и страница обновления html - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь создать небольшую веб-страницу, выполнив следующие действия: 1. Пользователь выбирает уровень, после чего в зависимости от выбора будут отображаться некоторые параметры в виде флажков. 2. Пользователь может выбрать один или несколько вариантов

. Я бы хотел, чтобы на одной и той же странице динамически отображались выбранные им параметры и значение, связанное с этим. Значение хранится в базе данных mySQL.

Первый шаг работает, но не второй. Если кто-нибудь может мне помочь? Если флажок установлен или нет, страница не обновляется.

Вот мой тестовый код:

Код HTML

<script>
$(document).ready(function(){
    $('#id_class').on('change', function(){
        var _class = $(this).val();
        if(_class){
            $.ajax({
                type:'GET',
                url:'ajaxData.php',
                data:'_class='+_class,
                success:function(html){
                    $('#id_opt').html(html);
                }
            }); 
        }else{
            $('#id_opt').html('<option value="">Complete CP first</option>');
        }
    });
});

$(document).ready(function(){
    $('#id_sci').on('click change', function(){
        var _sci = $(this).val();
        if(_sci){
            $.ajax({
                type:'GET',
                url:'ajaxDataPrice.php',
                data:'_sci='+_sci,
                success:function(html){
                    $('#id_price').html(html);
                }
            }); 
        }else{
            $('#city').html('<option value="">Complete CP first</option>');
        }
    });
});
</script>

<body>    
    <form action="test_menu.php" method="POST">
        <select id="id_class" name="_class">
            <optgroup label="Primaire">
                <option value="CP">CP</option>
                <option value="CE1">CE1</option>
                <option value="CE2">CE2</option>
                <option value="CM1">CM1</option>
                <option value="CM2">CM2</option>
            </optgroup>
            <optgroup label="Collège">
                <option value="6ème">6ème</option>
                <option value="5ème">5ème</option>
                <option value="4ème">4ème</option>
                <option value="3ème">3ème</option>
            </optgroup>
        </select>

 <input id="id_intern" type="checkbox" name="_intern" value="Yes"> Interne / Externe
 <div id="id_opt">
 </div>
 <br>

 <b>Montant à payer :</b>
 <div id="id_price">

 </div>
 <p>

Код PHP

if(!empty($_GET['_sci']))
{
    if ($_SESSION['_nbOpt'] > 0)
    {
        if ($_GET['_sci'] == "Yes")
            $_SESSION['_nbOpt'] += 1;
        else
            $_SESSION['_nbOpt'] -= 1;
    }
    elseif ($_SESSION['_nbOpt'] == 0)
    {
        if ($_GET['_sci'] == "Yes")
            $_SESSION['_nbOpt'] += 1;
    }

    $_priceOpt = $_SESSION['_nbOpt']*5;
    $_priceTotal = 6 + $_priceOpt;

    echo 'Prix matières : 6 € <br>
            Prix matières opt : '.$_priceOpt.' € <br>
            Prix total : '.$_priceTotal.' € <br>';
            ;

}

1 Ответ

1 голос
/ 01 февраля 2020

Вы должны использовать ajax GET для отправки данных, как показано ниже. Я думаю, что ваш $ _GET может не получить данные в php. После изменения кода очистите все кэши вашего браузера и проверьте.

<script>
$(document).ready(function(){
    $('#id_class').on('change', function(){
        var _class = $(this).val();
        if(_class){
            $.ajax({
                type:'GET',
                url:'ajaxData.php',
                data:{'_class':_class},    //changes done here
                success:function(html){
                    $('#id_opt').html(html);
                }
            }); 
        }else{
            $('#id_opt').html('<option value="">Complete CP first</option>');
        }
    });
});

$(document).ready(function(){
    $('#id_sci').on('click change', function(){
        var _sci = $(this).val();
        if(_sci){
            $.ajax({
                type:'GET',
                url:'ajaxDataPrice.php',
                data:{'_sci':_sci},      //changes done here
                success:function(html){
                    $('#id_price').html(html);
                }
            }); 
        }else{
            $('#city').html('<option value="">Complete CP first</option>');
        }
    });
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...