2016-11-04 3 views
-2

getクエリ文字列を次のページに送信するにはどうすればよいですか?私はどのようなクエリ文字列のフォーマットを知っているだけで私は次のページにリダイレクトの実際のプロセスを理解していない。次のページにクエリ文字列を送信

hrefのようなものではなく、次のページにクエリ文字列を送信するためにクリックする必要はありません。

<?php 

///receiving from page1 and storing as variable 
    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $age = $_POST['age']; 

//quarry string with firstname and lastname 
    page3.php?firstname=<?php echo $firstname;?>&lastname=<?php echo $lastname;?> 
+0

私は考えることができる唯一のことは、hrefのですが、フォームを使用している場合、私はその後、 'メソッド=「GET」'したり、コードを共有 – user47835

+0

をリンクし、実際の送信ボタンをしたくありませんフォームを使用していない私は何を悪い投稿の変数として別のページからPOSTデータを取っている。とにかくフォームのような提出ボタンを持っていないと思っています –

+0

もIMを使用 – user47835

答えて

1

技術的には、使用できる2つのオプションがあります。それを使うべきかどうかは別の話です。

GETリクエスト

get要求が代わりmethod="post"の、同じ元の形を伴うだろう、あなたはこれを行うだろう。 method="get"。これは、すべてのフォームデータを指定されたアクションurlにクエリ文字列として追加することです。

データを取得するには、POSTデータと非常によく似ています。

$varName = $_GET['name']ここで、nameはフォームで指定された名前です。

この方法は、POSTのデータを処理してから別のページに自動送信する必要がないという意味で便利です。あなたの既存のコードは、現在、GETを経由してそれを送信する前にそれを変更することとして、いくつかの状況では意味を成さないPOST要求を、使用している

POSTリクエスト

この方法を使用する場合は、これが必要です。

header("location: $url");ここで、$urlは、お送りしているGETリクエストの変数です。

TL; DR

はおそらく、しかし、それはまだ実現可能だが、代わりにPOST要求のGET要求を使用する必要があります。

このようなことをしてください。

<?php 
    if (isset($_POST['firstname']) && isset($_POST['lastname'])) { 
     $firstname = $_POST['firstname']; 
     $lastname = $_POST['lastname']; 
     $city = $_POST['city']; 
     $state = $_POST['state']; 
     $age = $_POST['age']; 

     $url = "page3.php?firstname=".$firstname."&lastname=".$lastname; 
     header("location: $url"); 
    } 
?> 
関連する問題