- ベストアンサー
集計結果をiframeの中に表示するには?
- phpとMysqlで、データ項目を選択して、クロス集計をさせて表示させようとしています。クロス集計の結果テーブルの大きさが凄く大きくなるので、iframeの中に表示させてスクロールして結果を見るようにしたいのですが、選択項目の送信先(postデータの送信先)と画面遷移とをちがうページにしたいのですが、どのようにしたらいいかわかりません。
- 初心者です宜しくお願い致します。
- 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
う~む、私も勘違いしていたようです。申し訳ありません。 PHPから離れますが、解決策を2通り。 1.スタイルシート{ overflow: scroll; }を使う iframeではなく、結果を表示するTABLEだけに スクロールバーを付けます。幅と高さも当然固定します。 下記に詳しく説明してあります。 http://www.htmq.com/style/overflow.shtml 2.JavaScriptでsubmitする インラインフレームを埋め込むページにて、 POSTで受け取ったデータを全てformのhidden要素に入れる <INPUT type="hidden" name="a" value="<?PHP print $_POST["a"]; ?>"> JavaScriptで document.form_name.submit(); を実行する。 これは、ボタンのアクションではないので、 function内に入れない事。 ページを読み込んだ時に勝手にsubmitする感じですね。 <FORM name="..." action="..." target="..."> ~ </FORM> の後に入れないとエラーが出るかもしれませんので、順番に注意。
その他の回答 (3)
ダメですか?我が家の環境では、上手くいきました。(Apache1.3 + PHP4.2.3) ソースを載せときます。 **** form.htmlのソース *********************************** <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </HEAD> <BODY bgcolor="#FFFFFF" text="#000000"> <FORM method="post" name="frm1" action="./test.php" target="a"> <INPUT type="text" name="txt1" size="6" value=""> <SELECT name="sel1"> <OPTION value="1">001</OPTION> <OPTION value="2">002</OPTION> </SELECT> <INPUT type="submit" name="submit" value="submit"> </FORM> <IFRAME name="a" src="dummy.html" width=400 height=300> </BODY> </HTML> **** test.phpのソース ************************************ <?PHP header("Content-type: text/html; charset=EUC-JP"); $strTxt1 = $_POST["txt1"]; $strSel1 = $_POST["sel1"]; print "txt1=" . $strTxt1 . "<br>"; print "sel1=" . $strSel1 . "<br>"; ?> **********************************************************
補足
なんどもご回答ありがとうございます。 お手数をおかけして恐縮です。 当方でも、上記のようにフォームのあるページに、 インラインフレームを設置するとうまくいきます。 しかし、ボタンを押した時、違うページ移行して、 その移行したページにあるインラインフレームの中には データが行かないようです。 http://oshiete1.goo.ne.jp/qa1697381.html ↑によると、どうやら厄介そうなのであきらめます。 丁寧にサンプルまで作っていただきありがとうございました。 自分の説明のしかたが悪かったようで、申し訳ございませんでした。 ”画面遷移”という言葉を、違うページに移ることだと思っていました。 すみません。それでは。
下記のような感じです。 <FORM method="post" name="frm1" action="./test.php" target="a"> <INPUT type="submit" name="submit" value="submit"> </FORM> <IFRAME name="a" src="dummy.html" width=400 height=300>
補足
たびたび、ご回答ありがとうございます。 やっぱりうまくいきません。<iframe>のsrcで指定しているページでは、postのデータが取得できないようです。<iframe>を設置しているページでは、postのデータが取得できます。 <iframe>の中のページはphpなのですが、postデータの取得の仕方が間違っているのでしょうか? $sample_value = $_POST["sample_value"]; としています。 当然、"sample_value"は<form>内の<select>等のnameを指定しています。 宜しくお願い致します。
iframeにnameを付けて、post送信するformにtarget属性を与えれば良いです。 phpではありません。
お礼
ご回答ありがとうございます。 やってみます。
補足
iframeのsrcはなくていいのでしょうか?あと、formのactionは必要なのでしょうか?ググッてみましたがいまいち要領を得ないので宜しくお願い致します。
お礼
たびたびありがとうございます。 あきらめていたのに、ご回答いただき恐縮しております。 overflowの方でスクロール表示することが出来ました。 最後までお付き合いくださり感謝しております。 ありがとうございました。