- ベストアンサー
HTML + Javascript + PHPで複数画面の親子関係を作る方法
- HTML + Javascript + PHPを使用して、1画面のみで親子関係を作る方法について教えてください。
- リンク元の画面に複数のリンクがあり、リンク先の画面には複数のチェックボックスがあります。
- A画面でチェックボックスの状態を変更すると、B画面のチェックボックスの状態も変更したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
画面間でデータを受け渡すのに「親子関係を作る」以外ですと、urlに含ませる方法とcookieを利用する方法があります。 詳しくは参考URLをご覧ください。
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
cookieにセットした時点で真/偽ではなく、文字列として 'true'/'false'になっています。 'false'という文字列は真偽で言えば真なので常にcheckedにはtrueがセットされてしまいます。 くっき1.htmlの theData へ値をセットする場所か参照する場所に修正が必要になりますね。
お礼
steel_gray様 ご返信ありがとうございます。 成程!! そういうコトなんですね。 意味が判らなくて「何故?」と思っていたのですが、よく考えてみればその通りですよね。 # ヒトに言われて気付くっていうのもなんだかなぁ(-_-;) ちょっとソース変更してみます。
補足
と、いうことで... ソースの変更+テストしてみたところ、バッチリ出来ましたー!!\(^o^)/ヤッター!! くっき1.htmlの変更箇所のみ、下記に記します。 '----------- for(i=0; i<document.myFORM.elements.length; i++) { if(document.myFORM.elements[i].type == "checkbox"){ if( theData == 'true' ) document.myFORM.elements[i].checked = true; else document.myFORM.elements[i].checked = false; } } '----------- やっとコレで先に進めます。 ありがとうございましたm(__)m
お礼
steel_gray様 返信ありがとうございます。 早速見てみます。
補足
現在、cookieを利用してファイルを作成しています。 大体こんなカンジになりました。 [くっき0.html] <html> <head> <title>クッキーへデータを書き込む</title> <script language="JavaScript"><!-- function saveData() { theValue = document.myFORM.rchk0.checked; alert( theValue ); document.cookie = escape(theValue); } // --></script> </head> <body> 渡されたデータ <form name="myFORM"> <input type="checkbox" name="rchk0" onClick="saveData()"><br> </form> </body> </html> <a href="./くっき1.html">くっき1</a> </body> </html> [くっき1.html] <html> <head> <title>クッキーからデータを読み込む</title> </head> <body> <form name="myFORM"> <input type="checkbox" name="chk1" ><br> <input type="checkbox" name="chk2" ><br> <input type="checkbox" name="chk3" ><br> <input type="checkbox" name="chk4" ><br> <input type="checkbox" name="chk5" ><br> <script language="JavaScript"><!-- theData = ""; theName = ""; theCookie = document.cookie+";"; start = theCookie.indexOf(theName); if (start != -1) { end = theCookie.indexOf(";",start); theData = unescape(theCookie.substring(start+theName.length,end)); alert( theData ); } for(i=0; i<document.myFORM.elements.length; i++) { if(document.myFORM.elements[i].type == "checkbox"){ document.myFORM.elements[i].checked = theData; } } // --></script> </form> </body> </html> 現在 くっき0.htmlのチェックボックス=trueの時はうまくいってます。 が、falseの時はうまくいきません。 くっき1.html のアラートをみても false なんですが... 何故なのかが判りません。 上記ソースでおかしな点があったら教えて下さい。 よろしくお願い致します