Как использовать две кнопки отправки и различать, какой из них использовался для отправки формы?
В настоящее время у меня есть 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>
Вероятно, следовало бы упомянуть об этом раньше, но я не могу назначить значения кнопок, потому что кнопка является изображением, поэтому текст будет отображаться над ним.
Ответы
Ответ 1
Дайте каждому атрибуту input
a 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]
.
Ответ 2
Дайте имя и значения кнопкам отправки, например:
<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 script вы можете проверить
if($_POST['mybutton'] == 'save')
{
///do save processing
}
elseif($_POST['mybutton'] == 'publish')
{
///do publish processing here
}
Ответ 3
Если вы не можете поместить значение на кнопки. У меня только грубое решение. Поместите скрытое поле. И когда одна из кнопок нажата перед отправкой, введите значение скрытого поля, как говорят 1, когда первая кнопка нажата, а вторая - вторая. и на странице отправки проверьте значение этого скрытого поля, чтобы определить, какой из них щелкнуть.
Ответ 4
Вы можете использовать его следующим образом:
<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
}
?>