2011-12-07 10 views
1

私の質問がはっきりしていて、答えがあることを願っています。私は、次のページでその名前を取得する必要があり、送信ボタンをクリックしたときにPHPの次のページで(ボタンの名前を送信する)方法は?

while... input type=submit name=$row['ID'] 

:これはボタン(ない実際のコード)を提出する私の。どうやって?

私は異なる送信ボタンを持っていますが、ユーザーが第1、第2、第3、またはxボタンを選択したかどうかはわかりません。

+0

セッションを使用するか、データを渡すためのフォームで投稿します。実際のコードを表示するのはどうですか? – Drewdin

+0

var_dump $ _REQUESTの場合、そこに情報が表示されます。 – Nightwolf

+0

フォームを送信した後、次のページでGET/POSTからデータのみを取得できます。サーバーはフォームの要素タイプを扱っていません。 – mahadeb

答えて

1

idをボタン名に割り当てる代わりに、query stringを使用してyour_script.php?id=$row['ID']に送信してください。次に、次のページで$_GET['id']を使用してボタン名を取得します。

+0

申し訳ありませんmr.matino ..あなたのソリューションは私を助けるが、私は同じ例があると思います:一つ(1)PHPの本(2)ASPの本(3)JSPの本を選択してください。ユーザーがphp bookをクリックすると、php bookのidを持つ次のページに移動します。選択肢はリンクとして表示されます。どうもありがとうございました。 – user1085733

2

送信ボタンが値を持つフォームの一部である場合は、次のページの$ _POSTまたは$ _GETデータ配列でアクセスできます。スクリプトが送信ボタンの名前を知らない場合は、ポストデータをループして見つけてください。

+0

ありがとうございます。 :) – user1085733

0

、あなたのアプリケーションの設計を変更したくない場合は、あなたは、単に

foreach ($yourids_used_in_prev_page as $id) 
    { 
    if (isset($_POST[$id])) // or $_GET if your form method="get" 
    { 
     // and you are get it! 
    } 
    } 

を行うことができますそれは美しい解決策ではないですが、あなた

+0

ありがとうございますmr.anton serdyuk。 – user1085733

1

EDITに適切であり得る:matino's answerがより適切ですそれがあなたのユースケースに合っていれば。

私が正しくあなたを理解していれば、あなたが得る/次の形式の提出後、「the_name」の存在を確認したい:

<form method="post"> 
    <input name="the_name" type="submit"> 
</form> 

今、すべてのPOST'edデータはPHPの$_POSTスーパーグローバルで提供されていますしかし、PHPはデータのどの部分が送信ボタンであるかを知る方法がありません。

この周りの2つの方法があります。

  • すでに名前を知っている場合、あなたはisset($_POST['the_name'])でその存在を確認することができます - ユーザーがthe_name送信ボタンをクリックしてフォームを送信した場合、これはあなたを教えてくれます(ただし、ヒットした場合はenter、変数は存在しません)。
  • HTMLを変更できる場合は、すべての送信要素名をsubmit[the_name]に変更することでサブスクリプトを使用できます。この方法で、array_keys($_POST['submit'])[0]を参照して送信済み送信ボタンの名前を確認できます。
+0

私はあなたの第2の解決策を掲載しようとしていました。 – Mike

+0

ありがとうmr.connec – user1085733

4

コメントに基づいて、実際にボタンが押されたかどうかを調べる必要があります。以下の例を確認してください。ここで

は、その名のさまざまなアクションを実行するためのユーザー名の入力と三つのボタンを持つ単純なフォームです:submitのいずれかのボタンが押され

<form action="next_page.php" method="post"> 
    <input type="text" name="myname" /> 
    <input type="submit" name="get_myname" value="Give my name back" /> 
    <input type="submit" name="rand_name" value="I will give you some name" /> 
    <input type="submit" name="color_name" value="Your name as a rainbow" /> 
</form> 

たら、我々は next_page.php に行きますそれがどれであったかを確認し、それに基づいて行動を起こしてください。

<?php 
    //this is next_page.php 
    if (isset($_POST['get_myname'])) { 
    //echo user's name to screen 

    } elseif (isset($_POST['rand_name'])) { 
    //echo a random name 

    } elseif (isset($_POST['color_name'])) { 
    //change every letter to a different colour 

    } else { 
    //nothing to do here, just nice to have a comment letting you know 
    } 
?> 
+0

mr.MattCanありがとう、ボタンの名前を知っているあなたの例は本当ですが、私の問題では、データベースから来た名前は、送信ボタン!だから私は何が必要ですか?次のページで、サブミットされたボタンの名前を取得します。再びありがとう、いつもありがとう。 – user1085733

関連する問題