2012-01-06 7 views
0

index.phpではフォームを作成しましたが、フォームタグのaction属性に "page2.php" 。

page2.phpもフォームです(index.phpから続きます)。フォームtageのaction属性には "page3.php"が指定されています。私は今も、ユーザーの場所を表示する、ユーザーがindex.phpの上の形で、「場所」テキストボックスに入力したもの取得し、方法 <?php echo $_GET["location"]; ?>

を通じてpage2.phpでそれを表示することができますが、 page3.php、しかし、私は上記の方法を使用すると動作しません。それは私に "Undefined index:location"というエラーを与えます。私はpage3.phpがindex.phpのフィールドにアクセスできないので、これを取るが、これをどのように動作させるのだろうか?事前に

おかげ

+2

来て、セッション?ええ、それはオプションですが、もしこの人がこのような質問をしているのであれば、少なくともセッションの使用と簡単な例は与えないほうが助かりません。リンクは簡単な例に従うと便利ですが、ただのリンクは怠惰で、何らかの出発点なしに新しいプログラマーを混乱させるかもしれません。 –

+0

[セッションを使用!](http://us.php.net/manual/en/book.session.php) –

答えて

1

を使用してみてください。 page2.phpに隠されたフィールドの中で、page3.phpに送信されるフォーム内で

更新例

page2.php

<form action="page3.php"> 
    <input type="hidden" value="<?php print $_GET['location']; ?>" name="location_from_page2" /> 

page3.php隠しフィールドの値に位置の内容をプリントアウトしているあなたがここでやっている

$location = $_GET["location_from_page2"]; 

あなたはpage3.phpでこの隠しフィールドを読んでいます

これは片道ですこれを行うには、PHPセッションを調べることを検討したいかもしれません。

+0

別の投稿で「隠されている」ことを知りましたが、見つからないようです。あなたは私の一例をあげることができますか? – user1135192

+0

私はちょうどあなたにいくつかのアイデアを与えるためにそれを編集しました。 – evasilchenko

+0

これで動作します。この例をありがとう! – user1135192

1

あなたは$ _GET [ "場所"]の値を格納する必要がありますセッション変数

$_SESSION['location'] = $_GET['location']; 
+0

http://www.php.net/manual/en/session.examples.basic.php – Brett

+0

セッションに値を保存すると、他のページから値にアクセスできます。 $ _GETまたは$ _POSTにある値は、 '

'要素から受け取ったもので、フォームを受け取ったページ(フォーム送信後のもの)にのみ存在します。隠しフィールドを使用すると、2番目のフォームに再び入れられます。ユーザーがフォームを送信したときに再び表示されますが、それらの値を検証してから再検証する必要があります(ユーザーが隠しフィールドを改ざんする可能性があるためフィールドを変更して変更します)。 –

+0

また、いくつかの値を扱っているなら、 ''( 'get'ではなく)を使うことをお勧めします。$ _POSTから値を取得します。 ポストは大きなデータを扱うことができ、値はURLに表示されません。 –

1

これを実現するには、非表示のフィールドを使用できます。

page2.php:

<form id="myform" action="/page3.php" method="get"> 
    <fieldset> 
     <label>x</label> <input type="text" name="something" value=""><br><br> 
     <input type="hidden" name="location" value="<?php echo $_GET['location']; ?>"> 
     <input type="submit" name="submit" value="submit"> 
    </fieldset> 
</form> 
+0

それは働いてくれてありがとう! – user1135192

0

あなたは2ページ目にフォームの値を含める必要があります。

同様:<input type="hidden" name="location" value="<?= $_GET["location"]; ?>">

またはフォームであなたのアクションに変数を追加します。

それ以外の場合は、セッションを使用できます。これは、おそらく最も簡単な方法です。

+0

ありがとう、それは動作します – user1135192

関連する問題