現在、ユーザーが記事のタイトルとテキストを入力する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>
おそらくこれは以前に言及したはずですが、ボタンは画像であるため、ボタンの値を割り当てることができません。したがって、テキストはその上に表示されます。
各input
にname
属性を与えます。クリックされたinput
のname
属性のみがサーバーに送信されます。
<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]
。
次のような送信ボタンに名前と値を指定します。
<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
}
ボタンに価値を置くことができない場合。大まかな解決策があります。非表示フィールドを配置します。送信する前にいずれかのボタンをクリックすると、非表示フィールドの値に、最初のボタンがクリックされた場合は1、2番目のボタンがクリックされた場合は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
}
?>