2015.09.30 11:50/加藤
カテゴリー: php
プルダウンタイプのリストボックス(selectタグのアレ)のある値が選択されたとき、その値に応じてDBから情報を取得し、別のリストボックスの表示内容を変えたい時などに使えると思います。
①見えないフレームを追加する
<iframe name=”frame1″ width=0 height=0 style=”visibility:hidden”></iframe>
width属性およびheight属性を0に設定。さらにstyle属性に”visibility:hidden”を設定することで見えないフレームを作ることができます。
あと、このiframeタグに適当なnameを付けておきます。
iframeタグを記述する場所はbodyタグの手前あたりでOKです。
②①で作った見えないフレームに向けてSubmit
<form name=”form1″ action=”Hogehoge.php” target=”frame1″>
submitしたいフォームのaction属性に実行させたいphpファイルを、target属性に①で作ったフレームのname属性の値を設定します。
こうすることで”ページの遷移”をそのフレームに押し付けるような感じに出来るので、見た目上画面が変化することなくphpの処理を実行させることができます。
フォームの属性をJavaScriptで変えたいときはこのようにします。
document.form1.action=”Hogehoge.php”;
document.form1.target=”frame1″;
③見えないフレームから元のフレームの要素を操作する
ただし見えないフレームでphpを実行させても、そのままでは元の画面は何も変わりません。
phpで処理した結果を元の画面に反映させるためにJavaScriptで元の画面を変更します(見えないフレームで実行させたいphpファイルに記述します)。
parent.document.~とすることで元の画面(見えないフレームの親フレーム)の要素にアクセスできます。
getElementByIdまたはgetElementsByName等で元の画面の要素オブジェクトを取得し、実行したい処理を記述しましょう。