web-dev-qa-db-ja.com

2つの送信ボタンを使用し、どちらを使用してフォームを送信するかを区別するにはどうすればよいですか?

現在、ユーザーが記事のタイトルとテキストを入力するHTMLフォームがあります。送信する時間になると、2つのボタンが表示されます。 1つは、記事を公開せずに「保存」し、もう1つは記事を「公開」して公開することです。

私はPHPを使用しています。適切な対応する値をデータベースに保存するために、どのボタンが使用されたかを知る方法を見つけようとしています。

<td>
<input type="submit" class="noborder" id="save" value="" alt="Save" tabindex="4" />
</td>
<td>
<input type="submit" class="noborder" id="publish" value="" alt="Publish" tabindex="5" />
</td>

おそらくこれは以前に言及したはずですが、ボタンは画像であるため、ボタンの値を割り当てることができません。したがって、テキストはその上に表示されます。

33
fvgs

inputname属性を与えます。クリックされたinputname属性のみがサーバーに送信されます。

<input type="submit" name="publish" value="Publish">
<input type="submit" name="save" value="Save">

その後

<?php
    if (isset($_POST['publish'])) {
        # Publish-button was clicked
    }
    elseif (isset($_POST['save'])) {
        # Save-button was clicked
    }
?>

編集:value属性をaltに変更しました。ただし、これが画像ボタンに最適なアプローチであるかどうかはわかりません。特定の理由でinput[type=image]

編集:これは賛成票を取得し続けるので、私は先に進み、奇妙なalt/valueコードを実際の送信入力に変更しました。元の質問は何らかの画像ボタンを要求していたと思いますが、最近ではinput[type=image]

73
powerbuoy

次のような送信ボタンに名前と値を指定します。

    <td>
    <input type="submit" name='mybutton' class="noborder" id="save" value="save" alt="Save" tabindex="4" />
    </td>
    <td>
    <input type="submit" name='mybutton' class="noborder" id="publish" value="publish" alt="Publish" tabindex="5" />
    </td>

そして、あなたのPHPスクリプトであなたはチェックすることができます

if($_POST['mybutton'] == 'save')
{
  ///do save processing
}
elseif($_POST['mybutton'] == 'publish')
{
  ///do publish processing here
}
8
Dr. Dan

ボタンに価値を置くことができない場合。大まかな解決策があります。非表示フィールドを配置します。送信する前にいずれかのボタンをクリックすると、非表示フィールドの値に、最初のボタンがクリックされた場合は1、2番目のボタンがクリックされた場合は2のようになります。送信ページで、この非表示フィールドの値をチェックして、クリックされたフィールドを特定します。

2
WatsMyName

次のように使用できます。

<td>

<input type="submit" name="save" class="noborder" id="save" value="Save" alt="Save" 
tabindex="4" />

</td>

<td>

<input type="submit" name="publish" class="noborder" id="publish" value="Publish" 
alt="Publish" tabindex="5" />

</td>

そしてPHPでは、

<?php
if($_POST['save'])
{
   //Save Code
}
else if($_POST['publish'])
{
   //Publish Code
}
?>
1
Stranger