簡體   English   中英

按自定義屬性選擇復選框多個並獲取值

[英]Select checkbox multiple by custom attribute and get value

我有一個學習東西的項目。 我有一個預訂系統,可以預訂電影座位。 這一切都做得很好,但現在我想在復選框上放置一個自定義值,當它被選中時,我想從該屬性中獲取值,我想將它傳遞給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 } ?>

所以我需要做的是選擇椅子名稱和那個椅子的id來更新mysql rezerved,但我沒有找到一個解決方案來獲取id和椅子的名稱,當檢查時我也需要超過1所以如果選中3把椅子可以檢查所有名稱座位。 謝謝!

沿着獲取其他字段的值的方式:

"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">


編輯

您發布的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. */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM