46

現在、ユーザーが記事のタイトルとテキストを入力する 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>

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

4

4 に答える 4

97

それぞれ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]

于 2012-08-13T07:00:28.823 に答える
8

次のような送信ボタンに名前と値を付けます。

    <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
}
于 2012-08-13T07:00:46.053 に答える
2

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

<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
}
?>
于 2012-08-13T07:03:32.877 に答える
2

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

于 2012-08-13T07:07:39.700 に答える