• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前画面の値を引き継ぎたい。)

HTML + Javascript + PHPで複数画面の親子関係を作る方法

このQ&Aのポイント
  • HTML + Javascript + PHPを使用して、1画面のみで親子関係を作る方法について教えてください。
  • リンク元の画面に複数のリンクがあり、リンク先の画面には複数のチェックボックスがあります。
  • A画面でチェックボックスの状態を変更すると、B画面のチェックボックスの状態も変更したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

画面間でデータを受け渡すのに「親子関係を作る」以外ですと、urlに含ませる方法とcookieを利用する方法があります。 詳しくは参考URLをご覧ください。

参考URL:
http://www.axis.t.u-tokyo.ac.jp/%7Eshunak/ecmascript/communication.html
hiro823
質問者

お礼

steel_gray様 返信ありがとうございます。 早速見てみます。

hiro823
質問者

補足

現在、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 なんですが... 何故なのかが判りません。 上記ソースでおかしな点があったら教えて下さい。 よろしくお願い致します

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

cookieにセットした時点で真/偽ではなく、文字列として 'true'/'false'になっています。 'false'という文字列は真偽で言えば真なので常にcheckedにはtrueがセットされてしまいます。 くっき1.htmlの theData へ値をセットする場所か参照する場所に修正が必要になりますね。

hiro823
質問者

お礼

steel_gray様 ご返信ありがとうございます。 成程!! そういうコトなんですね。 意味が判らなくて「何故?」と思っていたのですが、よく考えてみればその通りですよね。 # ヒトに言われて気付くっていうのもなんだかなぁ(-_-;) ちょっとソース変更してみます。

hiro823
質問者

補足

と、いうことで... ソースの変更+テストしてみたところ、バッチリ出来ましたー!!\(^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

関連するQ&A