前提・実現したいこと
完了ボタンを押すと、チェックボックスにチェックが付いているテーブル行の背景色を変更し、その情報を保持したいです。
データをテーブルに表示し、それぞれの行にチェックボックスを設けています。現在、チェックを付け「完了ボタン」を押すと、背景色の変更はできますが、その情報をどこにも保存していないので、ページをリフレッシュしたり、他画面に移動すると、背景色が初期値に戻ってしまいます。背景色が変わったという情報をどこかに持ち、いつログインしても、ページをリフレッシュしても、他画面へ遷移しても、変更された背景色を保つにはどのような方法がありますか?
いろいろ調べたところ、CookieやWebStorageがよく使われるようですが、今回はどの端末からでも変更後の背景色を表示させたいので、対象外だと思います。
該当のソースコード
Javascript
1<script type="text/javascript"> 2function Completebutton_On(){ 3 var check_name = 'id[]'; 4 var ElementsCount = document.logincontactform.elements[check_name].length; 5 var RowsCount = document.getElementsByClassName('result').length; 6 var flag = false; //flag for checkbox 7 8 // チェックボックスが1つのみ 9 if(ElementsCount == undefined){ 10 for (var i=0; i<RowsCount; i++) { 11 if(document.logincontactform.elements[check_name].checked){ 12 document.getElementsByClassName('result')[i].style.backgroundColor = '#cccccc'; 13 flag = true; 14 document.logincontactform.elements[check_name].checked = false; 15 } 16 } 17 } 18 19 // チェックボックスが1つ以上 20 for(i=0; i<ElementsCount; i++){ 21 for (var i=0; i<RowsCount; i++) { 22 if(document.logincontactform.elements[check_name][i].checked){ 23 document.getElementsByClassName('result')[i].style.backgroundColor = '#cccccc'; 24 flag = true; 25 document.logincontactform.elements[check_name][i].checked = false; 26 } 27 } 28 } 29 30 // チェックボックスにチェック無し 31 if (!flag){ 32 alert("Please check a checkbox."); 33 } 34} 35</script>
PHP
1<form action="#" name="logincontactform" method="post"> 2<table> 3<thead> 4<tr> 5<th><input type="button" value="Check all" onClick="Allcheck(true);"><input type="button" value="Uncheck all" onClick="Allcheck(false);"></th> 6<th>A</th> 7<th>B</th> 8<th>C</th> 9</tr> 10</thead> 11 12<?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 13?> 14<tbody> 15<tr class="result"> 16<td><input type ="checkbox" value="<?php echo $row['Id']; ?>" name="id[]"></td> 17<td><?php echo htmlspecialchars($row['A'], ENT_QUOTES); ?></td> 18<td><?php echo htmlspecialchars($row['B'], ENT_QUOTES); ?></td> 19<td><?php echo htmlspecialchars($row['C'], ENT_QUOTES); ?></td> 20</tr> 21<?php 22} 23$stmt = null; 24$dbh = null; 25?> 26</tbody> 27</table> 28/*完了ボタン*/ 29<input type="button" value="Complete" onClick="Completebutton_On()"> 30</form>
回答1件
あなたの回答
tips
プレビュー