さて、私がやっていることには、それに関連するいくつかの部分があります。
必要な手順は次のとおりです。
PHP を使用してチェックボックスのテーブルをロードします (9 行 (4 から 12 の ID で識別) と 3 列 (値 1 から 3 で識別) のテーブルがあります)
ページをロードしたら、チェックボックスの状態を変更する必要があります。特定のチェックボックスがオンになっている場合、他の特定のチェックボックスを無効にする必要があります。
jquery 変更関数を使用して、どのチェックボックスがチェックされているかチェックされていないかを確認します。ここでは、ユーザーの選択に応じて、ステップ 2 と同じロジックを使用してチェックボックスを無効または有効にします。
ページが読み込まれ、チェック ボックスがオンまたはオフになるたびに、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;
}
});
}
}
});
});