0

さて、私がやっていることには、それに関連するいくつかの部分があります。

必要な手順は次のとおりです。

  1. PHP を使用してチェックボックスのテーブルをロードします (9 行 (4 から 12 の ID で識別) と 3 列 (値 1 から 3 で識別) のテーブルがあります)

  2. ページをロードしたら、チェックボックスの状態を変更する必要があります。特定のチェックボックスがオンになっている場合、他の特定のチェックボックスを無効にする必要があります。

  3. jquery 変更関数を使用して、どのチェックボックスがチェックされているかチェックされていないかを確認します。ここでは、ユーザーの選択に応じて、ステップ 2 と同じロジックを使用してチェックボックスを無効または有効にします。

  4. ページが読み込まれ、チェック ボックスがオンまたはオフになるたびに、JSON を生成し、それを配列にプッシュし、送信ボタンをクリックして別のページに投稿します。

したがって、ステップ 1、3、および 4 は問題ありません。ページがロードされたら、チェックボックスの状態を変更するのに助けが必要です。

ページが読み込まれた後にチェックボックスの状態が変更されたら、チェックボックスを無効にするために使用しているのと同じロジックを取得するにはどうすればよいですか?

これが私のJavaScriptです:

$(document).ready(function(){
        var obj = {};
        var obj1 = {};
        var array = new Array();
        $("input[type='checkbox']").change(function() {

        if((this.id=='5' || this.id=='6' || this.id=='7' || this.id=='8' || this.id=='9' || this.id=='10' || this.id=='11' || this.id=='12') && this.value=='1') {
                var checkedId = this.id;
                var checkedOrNot = $(this).is(':checked');
                $("input[type='checkbox']").each(function() {
                    if(this.id==checkedId && (this.value=='2' || this.value=='3')) {
                        if(checkedOrNot) {
                            $(this).attr("disabled",true);
                        } else {
                            $(this).attr("disabled",false);
                        }
                    }
                });
            }



        if((this.id=='5' || this.id=='6' || this.id=='7' || this.id=='8' || this.id=='9' || this.id=='10' || this.id=='11' || this.id=='12') && this.value=='2') {
                var checkedId = this.id;
                var checkedOrNot = $(this).is(':checked');
                $("input[type='checkbox']").each(function() {
                    if(this.id==checkedId && (this.value=='1' || this.value=='3')) {
                        if(checkedOrNot) {
                            $(this).attr("disabled",true);
                        } else {
                            $(this).attr("disabled",false);
                        }
                    }
                });
            }



        if((this.id=='5' || this.id=='6' || this.id=='7' || this.id=='8' || this.id=='9' || this.id=='10' || this.id=='11' || this.id=='12') && this.value=='3') {
                var checkedId = this.id;
                var checkedOrNot = $(this).is(':checked');
                $("input[type='checkbox']").each(function() {
                    if(this.id==checkedId && (this.value=='1' || this.value=='2')) {
                        if(checkedOrNot) {
                            $(this).attr("disabled",true);
                        } else {
                            $(this).attr("disabled",false);
                        }
                    }
                });
            }



if(this.id=='4' && this.value=='1') {
    if($(this).is(':checked')) {
                $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='1') {
            } else {
                $(this).attr("disabled",true);
            }
       });
    } else {
         $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='1') {
            } else {
                $(this).attr("disabled",false);
            }
        });
    }
}


if(this.id=='4' && this.value=='2') {
    if($(this).is(':checked')) {
                $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='2') {
            } else {
                $(this).attr("disabled",true);
            }
       });
    } else {
         $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='2') {
            } else {
                $(this).attr("disabled",false);
            }
        });
    }
}


if(this.id=='4' && this.value=='3') {
    if($(this).is(':checked')) {
                $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='3') {
            } else {
                $(this).attr("disabled",true);
            }
       });
    } else {
         $("input[type='checkbox']").each(function(){
            if(this.id=='4' && this.value=='3') {
            } else {
                $(this).attr("disabled",false);
            }
        });
    }
}
   //Other functionality
 });  });

アップデート

PHP テーブルは次のとおりです。

<?php
    foreach($a as $b) {
        if ($s["id"]== $b["c"]) {
            if($b["p"] == "e") {
                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="1" checked/></td>';
            }else {

                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="1"/></td>';
            }   
            if($b["p"] == "r") {
                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="2" checked/></td>';
            }else {
                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="2"/></td>';
            }
            if($b["p"] == "b") {
                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="3" checked/></td>';
            }else {
                        echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="3"/></td>';
            }
        }else {
            echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="1"/></td>';
            echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="2"/></td>';
            echo '<td class="vcenter"><input type="checkbox" id="'.$s["id"].'" value="3"/></td>';
        }
    }

?>

ID 値は 4 から 12 まで変化します。

条件は次のとおりです。

行 5 ~ 12 のいずれかのチェック ボックスが選択されている場合、同じ行の他のすべてのチェック ボックスが無効になります。

最初の行のいずれかのチェック ボックスが選択されている場合、テーブル内の他のすべてのチェック ボックスが無効になります。

別の更新

したがって、チェック ボックスの値は次のようになります: [id:value]

[4,1]    [4,2]  [4,3]
[5,1]    [5,2]  [5,3]
[6,1]    [6,2]  [6,3]
[7,1]    [7,2]  [7,3]
[8,1]    [8,2]  [8,3]
[9,1]    [9,2]  [9,3]
[10,1]   [10,2]  [10,3]
[11,1]   [11,2]  [11,3]
[12,1]   [12,2]  [12,3]

さまざまな可能性があるため、任意のチェック ボックスが選択されていると想定できます。しかし、すべての条件が満たされている必要があります。

さらに別の更新:

$(document).ready(function()
{
$("input[type='checkbox']").each(function() { 
 if($(this).attr("checked",true))
 {
        var id = mainid; 
        var value = this.value;
        var idn = this.id;
        if(id == "4") {
            $("input[type='checkbox']").each(function() {
                $(this).attr("disabled",true);
            });
        } else {
            $("input[type='checkbox']").each(function() {
                if(this.value == value) {
                    $(this).attr("disabled",true);
                    idn = ++id;
                }
            });
        }
}
});
});
4

1 に答える 1

1

次のコードを使用して、次のようにデモンストレーションを行ってください。

データベースから選択する次の値を取得するとします。

<?php
    $arrayIds = array("5"=>"1");
    //where 5 is id of the check box and 1 is value
?>
<script>
 $(document).ready(function(){
     <?php foreach($arrayIds as $key => $val ) { ?>
        var id = <?php echo $key; ?>;
        var value = <?php echo $val; ?>;
        var idn = id;
        if(id == "4") {
            $("input[type='checkbox']").each(function() {
                $(this).attr("disabled",true);
            });
        } else {
            $("input[type='checkbox']").each(function() {
                //alert(this.id+"--"+this.value+"--"+id+"--"+value+"--"+idn);
                //if(this.id == idn && this.value == value) {
                if(this.value == value) {
                    $(this).attr("disabled",true);
                    idn = ++id;
                }
            });
        }
     <?php } ?>
 });
</script>

上記のスクリプトは、値が 1 のすべてのチェックボックスを無効にします。つまり、上記の場合は最初の行です。

フォローしてもらえば

<?php
    $arrayIds = array("4"=>"1");
    //where 5 is id of the check box and 1 is value
?>
Above script will disable all the checkboxes found on the page.

hope this will help you complete your work

アップデート

これを試して

$(document).ready(function(){
    $("input[type='checkbox']").each(function() { 
        if($(this).attr("checked",true))  {
            var id = mainid; 
            var value = this.value;
            var idn = this.id;
            if(id == "4") {
                $("input[type='checkbox']").each(function() {
                    $(this).attr("disabled",true);
                });
            } else {
                $("input[type='checkbox']").each(function() {
                    if(this.value == value) {
                        $(this).attr("disabled",true);
                        idn = ++id;
                    }
                });
            }
        }
    });
});

ただし、mainid を定義する必要があります。

于 2013-10-03T08:01:07.070 に答える