Установите флажок несколько по пользовательскому атрибуту и ​​получите значение - PullRequest
0 голосов
/ 11 июня 2019

У меня есть проект, чтобы чему-то научиться.У меня есть система бронирования мест в кино.Все это хорошо сделано, но теперь я хочу поставить пользовательское значение на флажок, и когда он установлен, я хочу получить значение из этого атрибута и передать его в запрос ajax.Вот мой код:

<script>
$(document).ready(function (e){
    $("#frmRezerva").on('submit',(function(e){
        e.preventDefault();
         var $fields = $(this).find('input[name="scaun_film[]"]:checked');
         if (!$fields.length) {
            alert('Selectati un scaun sau mai multe!');
                return false; 
        }
        var arr=[];
             $.each($("input[name='scaun_film[]']:checked"), function(){            
                    arr.push($(this).val());
            });

             //console.log(arr)
        $("#mail-status3").hide();
        $('#rezBtn').hide();
        $('#loader-icon3').show();
        $.ajax({
            url: "rezervare.php",
            type: "POST",
            dataType:'json',
            data: {
            "arr": arr,
            "id_movie":$('input[name="id_movie"]').val(),
            "nume_film":$('input[name="nume_film"]').val(),
            "gen_film":$('input[name="nume_film"]').val(),
            "nota_film":$('input[name="nota_film"]').val(),
            "user_id":$('input[name="user_id"]').val(),
            "user_email":$('input[name="user_email"]').val(),
            "data_film":$('select[name="data_film"]').val(),
            "bilete_film":$('input[name="bilete_film"]').val(),
            "cinematograf":$('select[name="cinematograf"]').val()},             
            success: function(response){
                window.setTimeout(function(){location.reload()},2000)
            $("#mail-status3").show();
            $('#loader-icon3').hide();
            if(response.type == "error") {
                $('#rezBtn').show();
                $("#mail-status3").attr("class","alert alert-danger");               
            } else if(response.type == "message"){
                $('#rezBtn').show();
                $("#mail-status3").attr("class","alert alert-success");                          
            }
            $("#mail-status3").html(response.text);  
            },
            error: function(){} 
        });
    }));
});
</script>

Вот мой jquery, где я выбираю, если флажок был установлен.Я могу получить значение, но я хочу то же самое, но только из пользовательского атрибута.Мой пользовательский атрибут это seatName со значением из базы данных.РЕДАКТИРОВАТЬ: HTML здесь:

<?php 
                    $sqlsq = "SELECT * FROM scaune WHERE id_scaun_movie='{$_GET['id_movie']}'";
                    $resultsq = mysqli_query($conn, $sqlsq);
                    while($rs = mysqli_fetch_assoc($resultsq)){?>

<?php if($rs['ocupat'] == 1){?>
    <div class="box">
        <label>
            <input type="checkbox" value="<?=$rs['id'];?>" disabled checked><span class="label-text"></span>
        </label>
    </div>

    <?php }else{?>
        <div class="box">
            <label>
                <input type="checkbox" value="<?=$rs['id'];?>" seatName="<?=$rs['scaun'];?>" name="scaun_film[]"><span class="label-text"></span>
            </label>
        </div>
        <?php } ?>

            <?php } ?>

Итак, что мне нужно сделать, это выбрать имя стула и идентификатор этого стула для обновления в MySQL восстановлено, но я не могу найти решение, чтобы получить идентификатор и имя стулаКогда проверяется также, мне нужно быть больше 1, поэтому, если отмечен 3 стула, чтобы проверить все именные места.Спасибо!

1 Ответ

0 голосов
/ 11 июня 2019

По линиям извлечения значений для других полей:

"id_movie":$('input[name="id_movie"]').val()

Вы, вероятно, можете сделать это следующим образом:

"seat_name":$('input[name="seat_name"]').data('seatName'),

Но вы не показываете никакихвашей структуры страницы / разметки, так что это в лучшем случае предложение.

Это будет работать, если ваш элемент будет выглядеть примерно так:

<input type="checkbox" name="seat_name" value="something" data-seatName="5A">

Использование пользовательских data- атрибутовпредпочтительнее создания собственных атрибутов, таких как
<input type="checkbox" seatName="5A">
, лучше с префиксом данных
<input type="checkbox" data-seatName="5A">


EDIT

HTML / PHP, который вы разместили:

<input type="checkbox" value="<?=$rs['id'];?>" seatName="<?=$rs['scaun'];?>"
       name="scaun_film[]"><span class="label-text"></span>

Можно просто сделать заново как:

<input type="checkbox" value="<?=$rs['id'];?>" data-seatName="<?=$rs['scaun'];?>"
       name="scaun_film[]"><span class="label-text"></span>

Тогда выборка данных будет работать, как я сказал выше, и выдобавит его к данным, которые вы отправляете при вызове ajax:

$.ajax({
        url: "rezervare.php",
        type: "POST",
        dataType:'json',
        data: {
        "arr": arr,
        "id_movie":$('input[name="id_movie"]').val(),
        "nume_film":$('input[name="nume_film"]').val(),
        "gen_film":$('input[name="nume_film"]').val(),
        "nota_film":$('input[name="nota_film"]').val(),
        "seat_name":$('input[name="seat_name"]').data('seatName'), /* ADD */
        "user_id":$('input[name="user_id"]').val(),
        /* etc. */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...