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

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

ただいまの
回答率

90.50%

  • PHP

    20749questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    9234questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

複数のGETでパラメータを渡す方法

受付中

回答 3

投稿

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

nina1326

score 4

値を渡すGETについてお聞きしたく投稿致しました。
ご教示頂ければ嬉しいです。
A.php、B.php、C.php と3つのページがあるとし、
A.phpからGETを用い、B.phpにid=1というパラメータをGETで渡します。
B.phpにおいて、そのGETで受け取ったパラメータをC.phpに渡したいのですが、
C.phpに遷移するにあたっても他のformからGETでパラメータを渡すために、id=1
というパラメータをC.phpに渡せずに困っています。
分かりづらい説明で申し訳ありませんが、ご教示のほど宜しくお願い致します。

  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/05/22 02:19

    解決されたようでよかったです。まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。

    キャンセル

回答 3

+1

A.phpからB.phpへ来た時のGETパラメータをC.phpにも渡したいのですね。

C.phpへのURLの末尾にパラメータを付け加える、もしくは<form>タグをお使いであれば<input type="hidden">を追加すると渡せます。

<a>タグの場合

<?php // B.php
$a_id = $_GET["id"]; //A.phpからのGETパラメータ"id"
?>
<!-- ... 中略 ... -->
<a href="c.php?a_id=<?php echo $a_id; ?>">Cへ</a>

<form>タグの場合

<?php // B.php
$a_id = $_GET["id"]; //A.phpからのGETパラメータ"id"
?>
<!-- ... 中略 ... -->
<form action="C.php" method="GET">
    <input type="hidden" name="a_id" value="<?php echo $a_id; ?>">
    <button type="submit">Cへ</button>
</form>

いかがでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/05/07 19:12

    inputタグにhiddenのようなものがあると知りませんでした。
    半日悩んでたのですが、おかげ様で解決致しました!
    ありがとうございましたm(__)m

    キャンセル

  • 2016/05/07 19:16

    お役に立てて幸いです。

    URLにつなげていく方法の場合、ファイル名とパラメータの間の「?」や、パラメータ同士の間の「&」を挿入する処理が煩雑になってきてミスの元になるかもしれません。この例ではまだa_id1つだけですが、複数になったり、さらにいくつ来るか分からないとなった場合大変です。

    そのため、hiddenを使うほうがミスが起こりにくいのではないか、と思い提案致しました。

    キャンセル

  • 2016/05/07 19:34

    <form>タグのほうを使っていたのでhiddenを使わせていただきました!
    配慮までしていただき、ありがとうございましたm(__)m

    キャンセル

+1

B.php へ遷移してきたときの $_GET を C.php へ引き継ぎたいということであれば、form タグを使う場合は他の方の回答のようにしても良いと思いますが、a タグの href とかに仕込むのであれば $_GET を http_build_query に渡して URL を生成するとかでどうでしょうか?

つまり B.php で次のように C.php に遷移するための URL を生成します。

$url = 'C.php?' . http_build_query($_GET);

次のように a タグにいれます。

<a href="<?= htmlspecialchars($url) ?>">goto C</a>

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

<?php
$id = $_GET['id'];
?>
<form method="get" action="C.php?id=<?= $id ?>">
または
<form method="get" action="C.php">
<input type="hidden" name="id" value="<?= $id ?>">

 B.phpでこんな風にすればいいのでは?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/05/07 19:12

    ご返信ありがとうございます、おかげさまで解決しました!
    ありがとうございました!

    キャンセル

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

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

関連した質問

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

  • PHP

    20749questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    9234questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。