集計結果をiframeの中に表示するには?

このQ&Aのポイント
  • phpとMysqlで、データ項目を選択して、クロス集計をさせて表示させようとしています。クロス集計の結果テーブルの大きさが凄く大きくなるので、iframeの中に表示させてスクロールして結果を見るようにしたいのですが、選択項目の送信先(postデータの送信先)と画面遷移とをちがうページにしたいのですが、どのようにしたらいいかわかりません。
  • 初心者です宜しくお願い致します。
  • 宜しくお願い致します。
回答を見る
  • ベストアンサー

集計結果をiframeの中に表示するには?

初心者です宜しくお願い致します。 phpとMysqlで、データ項目を選択して、クロス集計をさせて表示させようとしています。 クロス集計の結果テーブルの大きさが凄く大きくなるので、iframeの中に表示させてスクロールして結果を見るようにしたいのですが、 【選択画面ページ】 →送信→ 【集計結果テーブル表示ページ】   ↓                  ↓  画面遷移              iframe内に表示   ↓                  ↓ 【結果表示ページ】←←←←←←← 選択項目の送信先(postデータの送信先)と画面遷移とを ちがうページにしたいのですが、どのようにしたらいいかわかりません。 javascriptかなと思うのですが・・・行き詰っております。 宜しくお願い致します。

  • hrf
  • お礼率50% (13/26)
  • PHP
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
noname#30334
noname#30334
回答No.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>  の後に入れないとエラーが出るかもしれませんので、順番に注意。

参考URL:
http://www.htmq.com/style/overflow.shtml
hrf
質問者

お礼

たびたびありがとうございます。 あきらめていたのに、ご回答いただき恐縮しております。 overflowの方でスクロール表示することが出来ました。 最後までお付き合いくださり感謝しております。 ありがとうございました。

その他の回答 (3)

noname#30334
noname#30334
回答No.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>"; ?> **********************************************************

参考URL:
http://www.capacitance.net/form.html
hrf
質問者

補足

なんどもご回答ありがとうございます。 お手数をおかけして恐縮です。 当方でも、上記のようにフォームのあるページに、 インラインフレームを設置するとうまくいきます。 しかし、ボタンを押した時、違うページ移行して、 その移行したページにあるインラインフレームの中には データが行かないようです。 http://oshiete1.goo.ne.jp/qa1697381.html ↑によると、どうやら厄介そうなのであきらめます。 丁寧にサンプルまで作っていただきありがとうございました。 自分の説明のしかたが悪かったようで、申し訳ございませんでした。 ”画面遷移”という言葉を、違うページに移ることだと思っていました。 すみません。それでは。

noname#30334
noname#30334
回答No.2

下記のような感じです。 <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>

hrf
質問者

補足

たびたび、ご回答ありがとうございます。 やっぱりうまくいきません。<iframe>のsrcで指定しているページでは、postのデータが取得できないようです。<iframe>を設置しているページでは、postのデータが取得できます。 <iframe>の中のページはphpなのですが、postデータの取得の仕方が間違っているのでしょうか? $sample_value = $_POST["sample_value"]; としています。 当然、"sample_value"は<form>内の<select>等のnameを指定しています。 宜しくお願い致します。

noname#30334
noname#30334
回答No.1

iframeにnameを付けて、post送信するformにtarget属性を与えれば良いです。 phpではありません。

hrf
質問者

お礼

ご回答ありがとうございます。 やってみます。

hrf
質問者

補足

iframeのsrcはなくていいのでしょうか?あと、formのactionは必要なのでしょうか?ググッてみましたがいまいち要領を得ないので宜しくお願い致します。

関連するQ&A

  • ACCESS2000で集計して結果表示

    ACCESS2000で集計して結果表示 いま、購入履歴テーブルに入っているデータの集計をしようとしています。そのテーブルには、種別を入力するようになっていて、その仕訳種別毎に集計したいのですが、方法が分かりません。 [購入履歴テーブル] [入力ID][仕訳種別] [単価] [数量] [金額]    1    1   100   2   200    2    1   200   1   200    3    2   150   2   300    4    2   500   1   500    5    3   450   1   450 「表示」   [仕訳種別] [金額合計] 1      400 2      800 3      450 こんな感じで表示したいのですが、条件の方法が分かりません。 EXELなら、「SUMIF」を使えば簡単なんですが・・・・ どうか、教えてください。 お願いします。   

  • クロス集計クエリの結果を一時テーブルに保存する 

    タイトルのような操作を求め下記のようなやり方を発見したのですが、なぜこのような2種類のクエリを作成しなければならないのかがわかりません。 2つのクエリの意味・役割をご存知の方がいらっしゃったら教えて下さい。 宜しくお願いします。 Q あるテーブルからクロス集計クエリを作成し、そのままそのクエリをテーブル作成クエリにしたところ、クロス集計が解除されてしまいます。クロス集計の結果をテーブルに保存することはできないのでしょうか A クロス集計クエリを作成して、そのままそのクエリをテーブル作成クエリにすることはできないようです。 その場合は、クエリを2つ作成し2段階でテーブルを作成するようにします。 1つめのクエリではテーブルなどを基にしてクロス集計を行います。 2つめのクエリでは1つめのクエリを「テーブルの表示」一覧から「クエリ」タブに切り替えて選択してテーブル作成クエリとします。 参照:http://www.nbcom.co.jp/PC-Support/FAQ/acc/ht/acc092004ht001.shtml

  • IFRAMEの中に表示されるページの保存先は・・?

    HPビルダー9でIFRAMEの中に表示されるページの保存先はどこにすればよいのでしょうか?現在はマイドキュメント内の他のページも保存しているフォルダにあります。が、HPビルダーのプレビュー画面ではIFRAME内にきちんと表示されているのですが、ブラウザで確認すると表示されません。 また、保存先以外に何か間違っているのでしょうか? よろしくお願いします。

  • 集計結果だけを別シートにコピーするにはどうしたら良いのでしょうか?

    初めまして、エクセル初心者です。 現在エクセルにてデータの集計を行っておりますが、困っております。過去に事例があるかと検索しましたが、検索条件が悪いのかヒットしない為、質問させて頂きました。 <経緯> あるデータに同一項目がある為、集計機能を使って集計しました(集計機能をある人に昨日教えてもらいました)。 ソートし、同一項目を集計したのは良いのですが、集計結果をさらに集計する為に、集計結果だけを選択して別シートにコピーしたら、明細がくっついてくるのです。 <質問> (1)集計結果だけをコピーする方法はあるのでしょうか(「形式を選択して貼り付け」をいろいろやりましたが上手くいきません・・・)。 (2)「・・・集計」と書かれている「集計」という大量の文字を削除するにはどうしたら良いのでしょうか。  以上、幼稚な質問かもしれませんが、宜しくお願い致します。

  • Access2003 クロス集計で集計値を四捨五入

    ☆以下のようなテーブルで、フィールド[ID]~[点数]があり、文字および数字のデータが混在しています。   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== (テーブル(1)) [ID]  [クラス]  [科目]  [点数]     1     A     英語    11    2     B     英語    22    3     C     数学    33    4     A     国語    44   5     B     数学    55    6     C     国語    66    7     B     国語    77   8     C     英語    88     9     A     数学    99     =========================================== ☆上記のテーブルをクロス集計クエリで集計する ・フィールド[クラス]を行見出しに設定、 ・フィールド[科目]を列見出しに設定、 ・フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 =========================================== [クロス集計結果]   合計   英語  国語  数学       A  154   11    44    99        B  154   22    88    55     C  187   99    77    33  =========================================== [課題] クロス集計クエリで、集計値を四捨五入する (1) フィールド[クラス]を行見出しに設定、    フィールド[科目]を列見出しに設定、    フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 (2) クロス集計の値を、下1桁で四捨五入した値を表示する。   (3) 「合計」の値を、下1桁で四捨五入した値を表示する。 ※ クロス集計した合計値を、四捨五入した値を表示する   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== [クロス集計結果]   合計   英語  国語  数学     A  150   10    40   100        B  150   20    80    60     C  190   90    70    30  ===========================================   ↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑    上記のように、クロス集計クエリでの集計値を四捨五入して 表示させたいのですが、どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • クロス集計のスピードアップ

    Accessで数十万件のデータのクロス集計をおこなおうと思っているのですが1日程度時間がかかってしまいます。以下のプロセスでスピードアップが図れそうな事項がございましたらご教授ください。 -------------------------------------------- (1)テーブル「A」とテーブル「B」(両方とも数十万件)を「A」のIDをキーとして「B」のIDと紐付けし、テーブル「A」の全項目とテーブル「B」のある1項目をクエリを用いて出力します。 (2)(1)のクエリをテーブルに変換する。(←ここで非常に時間がかかってしまいます。) (3)(2)についてクロス集計を行う。 -------------------------------------------- (2)でテーブルに変換せずにクロス集計を行っても非常に時間がかかってしまいます。素人質問で大変恐縮ですが何とぞご教授ください。 よろしくお願いいたします。

  • Accessのクロス集計について

    お願いします アクセスで次のようなアンケートCSVをインポートして集計しています。質問1・2に入力されるのは選択肢番号です <アンケート結果テーブル> 名前   回答者 質問1  ========================== 20080710 Aさん   1   20080710 Bさん   2    20080710 Cさん   5    上記をクロス集計を行い日別の集計を行っております。 <クロス集計> 日付   1 2 5 =========================== 20080710 1 1 1  上記の結果を回答がなかった選択番号は下記のように0を表示させたいのですがどうすればよろしいでしょうか? 日付   1 2 3 4 5 =========================== 20080710 1 1 0 0 1 

  • IFRAME内のフォームをRequestしたい

    こんばんわ。 ASPで簡単なウェブページを作っています。 あるアンケートフォームがあるHTML(親ページとします)があります、その中に一部IFRAMEでこれまた別の設問が書かれたHTML(子ページとします)が表示されているとします。 親ページのSUBMITで内容をメール送信するASPにデータを送信するとしてテストしてみますとIFRAME内の内容がRequestなどで呼べませんでした。 こういう場合、どうにかしてASPファイルにてIFRAME内の情報をRequestできる方法はないでしょうか? お手数をお掛けいたしますが宜しくお願い申し上げます。

  • iframeでhatenaを読み込むとページ遷移

    以下のurlをiframeで読み込むと、IE6、IE7でページ遷移してしまいます。(一度iframeとして表示された直後) http://b.hatena.ne.jp/entry/panel/?url=http://hoge.com/ <html> <body> <iframe src="http://b.hatena.ne.jp/entry/panel/?url=http://hoge.com/"></iframe> </body> </html> 他のブラウザのように、ページ遷移せずに、iframeとしてその場で表示させるにはどのようにすればよいでしょうか?また、なぜこのような現象がおきるのかも教えて頂けると幸いです。

  • Accessのクロス集計→テーブル作成で値がない場合の対処法

    すいません、先ほど同じような質問をしたんですが、わかりづらいと思うので再度質問させてください。 テーブル1に大もとのデータが入っています。 フォームに入力をして(たとえば年度など)検索を行います。 その結果を元に、テーブルにデータを入れます。 さらにそのテーブルからクロス集計をして、最終結果を得ています。 (すべてVBAにて実行) たとえばテーブル1に種類1という項目があって、そこには普段A・B・C・Dというデータが入るはずですが、 時々一つくらい無い場合があります。(A・B・Dなど) その場合に、クロス集計を行ってそのデータをテーブルに入れる際に、フィールドが足りないというエラーが出てしまいます。 そういう場合に、空欄を入れるということはできるのでしょうか? お願いします!!(><)

専門家に質問してみよう