Подтвердить что ты не робот

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

В настоящее время у меня есть 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>

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

4b9b3361

Ответ 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
}
?>