0

基本的に、送信ボタンを動的に作成する Web サイトがあります。元:

input type="submit" name="test1"

input type="submit" name="test2"

等々....

どのボタンが押されたか (test1、test2、test3 など) を調べるにはどうすればよいですか?

代わりに非表示の値を使用して複数のフォームを作成できることは知っていますが、複数の送信を含む 1 つの巨大なフォームだけを使用したいと考えています。

編集: ボタンは動的に作成されるため、ボタンの数はわかりません。それは test1-test55 かもしれないので、すべての可能性を自動的に調べるものを作成する必要があります。

4

5 に答える 5

1

次のような if または switch ステートメントを使用して、どの送信が送信されるかをテストできます。

if(isset($_POST['test1'])){
    //form test1 submitted
}
else{
   if(isset($_POST['test2'])){
    //form test2 submitted
   }
}

このようにすべての $_POST キーをチェックインできます

foreach($_POST as $key => $value){
   if(substr($key,0,4) == 'test'){
      $form_submitted = substr($key,5); //retrieve number of submitted test
   }
}
于 2013-09-22T13:59:24.160 に答える
0

配列を別の変数に格納$_POSTし、配列を逆にkey()して、最初のキー (送信ボタン) を取得するために使用します。

以下が機能するはずです。

<?php

if(!empty($_POST)) {
    $array = $_POST;
    $array = array_reverse($array);
    $key = key($array); // get first key
    echo $key;
}

?>

<form action="" method="post">
    <input type="text" name="foo" />
    <input type="submit" name="submit1" />
    <input type="submit" name="submit2" />
    <input type="submit" name="submit3" />
</form>

たとえば、値を送信して任意の送信ボタンをクリックすると、クリックnameされた送信ボタンの属性がエコーされます。上記のソリューションは、フォーム内の送信ボタンの数に関係なく機能します。

于 2013-09-22T14:10:02.950 に答える
0
<form action ="" method="post">
    <input type="submit" name="test1" />
    <input type="submit" name="test2" />
    <input type="submit" name="test3" />

</form>

<?php
if(isset($_POST['test1'])){
    echo 'first button is pressed';
}elseif(isset($_POST['test2'])){
    echo 'Second button is pressed';
}

elseif(isset($_POST['test3'])){
    echo 'Third button is pressed';
}

    ?>
于 2013-09-22T14:02:13.900 に答える