Хорошо, поэтому у меня есть несколько частей, связанных с ним.
Ниже приведены шаги:
Я загружаю таблицу флажков с помощью PHP (есть таблица с 9 строками (идентифицируется идентификатором от 4 до 12) и 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; } }); } } }); });
Пожалуйста, используйте следующий код для вашего использования, демонстрацию следующим образом:
Предположим, что вы выбрали следующие значения из базы данных
<?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, хотя ..