Как использовать две кнопки отправки и различать, какой из них использовался для отправки формы?

В настоящее время у меня есть HTML-форма, в которой пользователь вводит заголовок и текст для статьи. Когда настало время представить, они представлены двумя кнопками. Один из них заключается в том, чтобы «сохранить» свою статью, не публикуя ее, а другой – «опубликовать» статью и сделать ее общедоступной.

Я использую 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> 

Вероятно, следовало бы упомянуть об этом раньше, но я не могу назначить значения кнопок, потому что кнопка представляет собой изображение, поэтому текст будет отображаться над ним.

Дайте каждому атрибуту name . На сервер будет отправлен только атрибут 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] ?

Edit: Так как это продолжает получать upvotes, я пошел вперед и изменил странный код 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, когда первая кнопка нажата, а вторая – вторая. и на странице отправки проверьте значение этого скрытого поля, чтобы определить, какой из них щелкнуть.

Вы можете использовать его следующим образом:

 <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 } ?>