質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.06%

formの送信先ファイルで、送信された値を元にphpファイルに値を渡したい

解決済

回答 3

投稿 ・編集

  • 評価
  • クリップ 0
  • VIEW 1,339

score 31

【訂正】誤ってベストアンサーボタンを押しましたが解決していません。
(取り消しできないんですかね。。。?)


a.htmlというファイルの中に

<form name="menu" id="menu" method="POST" action=b.html>

<select name="menu1" id="menu1">
    <option value="0">1</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<input type="submit" value="決定">

といった具合の記述があり、決定ボタンを押すとフォームがb.html送信され、値が渡されます(渡されるつもりです)。

b.htmlでは、

<script type="text/javascript" src="c.php"></script>

といった具合の記述があり、c.phpが実行されます。

この際、c.phpにa.htmlのフォームで送信した値を渡してやりたいのです。

<script type="text/javascript" src="c.php?value=[a.htmlから受け取った値]"></script>

みたいな感じでできると思うのですがうまくできません。

b.htmlでのa.htmlからの値の受け取り方およびc.phpへの値の渡し方、c.phpでの値の受け取り方を教えてください。

なおb.htmlはjavascriptが埋め込まれています。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

「うまくできません」だと何が起きたのかわからないので、明確に回答できませんが、
c.phpがJavaScriptを応答するもので、パラメータによってJavaScriptの中身が変わると言うものだと仮定すると、
まず、b.htmlのところがPHPスクリプトである必要があります。(GETメソッドならJavaScriptでも何かできるかもしれませんが)
b.htmlのPHPの処理で、$_POST['パラメータ名']を取得して、c.phpを記述しているscript要素の部分にこれを埋め込めばできると思います。
c.phpがPHPスクリプトの場合、PHPの処理で$_GET['パラメータ名']を取得すれば、b.htmlからのパラメータが出てくると思います。


D3.jsに渡したいのであれば、b.htmlをPHPスクリプトにして、d3.jsonのURL(第1引数)にc.php+パラメータを埋め込んだHTML(JavaScriptが中に書かれている)をPHPで生成すればできると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/24 12:35

    回答に追記しました。

    キャンセル

+1

そもそもb.htmlの
<script type="text/javascript" src="c.php"></script>
がおかしくないです?
仕様的にダメかどうかまでは知りませんが、普通はその記述でしたらscript中のsrcは
「***.js」等のjavascriptファイルを記述する事になると思います。
formのactionはsubmitされた後にデータを送る先(行き先って言えば良いのですかね?)
script中のsrcはそのhtmlファイルやphpファイルと一緒に読み込まれる物です。

まぁそこは置いておいて、html拡張子でPHP使う事が出来るならb.htmlで
<?php
$test1 = $_POST['menu1'];
?>
等でデータを受け取って、htmlの中に
<input type="hidden" name="menu1" id="menu1" value="<?=$test1?>">
って埋め込んでc.phpへPOSTする(submitする)のが簡単では無いでしょうか?

根本的に質問に対する私の理解が間違ってるならすみません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/24 12:28

    回答ありがとうございます。

    >普通はその記述でしたらscript中のsrcは 「***.js」等のjavascriptファイルを記述する事になると思います。

    追記に述べたc.phpと同様の処理をjavascriptでやってくれるならそれでかまわないのですが。。。javascriptはd3.json()を使いたいから使っているだけでまだうまく使えないので、使った経験のあるphpで実装をしました。

    >script中のsrcはそのhtmlファイルやphpファイルと一緒に読み込まれる物です。
    読み込まれる、ってよくわからないんですよねぇ、、、この方法でc.phpが実行されたのでこのやり方でいいやくらいのつもりで使ってますが。。。

    >html拡張子でPHP使う事が出来るならb.htmlで
    ><?php
    >$test1 = $_POST['menu1'];
    >?>
    >等でデータを受け取って、htmlの中に
    ><input type="hidden" name="menu1" id="menu1" value="<?=$test1?>">
    >って埋め込んでc.phpへPOSTする(submitする)のが簡単では無いでしょうか?
    b.htmlはd3.json()を使うもので、したがってjavascriptが記述されています。
    javascriptとphpを同じファイルに記述して実行するのがうまくできません。。。
    あと、phpを記述するのであれば.htmlではなく.phpにするのではないのですか?

    キャンセル

0

こんにちは、

これを見ていて思ったのですが、

画面遷移が HTML → HTML → PHP になっているともいますが、a.html から b.html へ遷移した後に、c.phpへ遷移する理由は何なのでしょうか?

お問い合わせフォームなどの場合:入力画面→確認画面→完了画面に遷移すると思います。

なのであれば、HTML(入力画面)→ PHP(入力確認処理)→ HTML(確認画面)→ PHP(メールなどの送信処理)→ HTML(確認画面)のような形式になるのではないでしょうか?

なので、

<form name="menu" id="menu" method="POST" action=b.html> 
  ↓
<form name="menu" id="menu" method="POST" action=c.php> 

に変更して、HTMLとPHPを交互に動作させるようにすれば良いのではないでしょうか?

後は、TaMaMhyuさんがコメントしている用に、PHP側でSubmitされたデータを取得して必須入力チェックなどをすれば問題ないかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/24 12:03

    回答ありがとうございます。

    追記にもありますように、c.phpに画面遷移することを望んではいません。。。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.06%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る