Как получить двойные кнопки для «огня» в начальной загрузке

У меня есть форма Bootstrap с двойными кнопками (2), как показано ниже.

  • submit button запускает и возвращает обработку на страницу (т.е. [‘PHP_SELF’])
  • Тем не менее cancel button ничего не делает

Как заставить обе кнопки срабатывать и возвращать обработку на страницу?

<form class="form-horizontal" method="post">
<fieldset>

<legend>My Form<</legend>

<div class="form-group">
<label class="col-md-4 control-label" for="submit"></label>
<div class="col-md-8">
<button id="submit" name="submit" class="btn btn-primary" value="1" type="submit">Update Profile</button>
<button id="cancel" name="cancel" class="btn btn-default" value="0" type="submit">Cancel Update</button>
</div>
</div>

</fieldset>
</form>

Добавлен (для каждого комментария от @Fred):
добавленной type="submit" на обе кнопки, но это не помогло.
Это ответ — он работает, когда вы добавляете type="submit"

Добавив:
Вот мой серверный код, который был моим доказательством того, что кнопка отмены ничего не делает — я не думал, что мне нужно доказать, почему кнопка отмены не работает — просто думал, что опытный разработчик Bootstrap мог бы знать сразу что пропало

<?php
//This is Server-Side
if( $_POST['cancel'] ) {
echo 'cancel button pressed';
}
elseif( $_POST['submit'] ) {
echo 'submit button pressed';
}
?>

2

Решение


Проблема здесь в том, что вы используете все на одной странице, HTML-форму и PHP.

Причина, по которой он терпит неудачу, заключается в том, что вам нужно использовать isset() для обоих ваших массивов POST.

<?php
//This is Server-Side
if(isset($_POST['cancel'] )) {
echo 'cancel button pressed';
}
if(isset($_POST['submit'] )) {
echo 'submit button pressed';
}
?>

Сообщение об ошибке помогло бы вам здесь.

  • Использовать type="submit" для ваших кнопок.

Этот ответ основан на том, что вы разместили в форме HTML и PHP. Если здесь используется Javascript, то нужен именно такой «механизм стрельбы».

Если вы хотите вернуться на страницу обработки, вы можете использовать заголовок для перенаправления или мета-обновление или решение JS.

Обратитесь к следующему в Stack по поводу перенаправления:


Другой вариант — дать вашим кнопкам один и тот же атрибут name и выполнить:

HTML

<input type="submit" name="action" value="Update Profile" />
<input type="submit" name="action" value="Cancel Update" />

PHP

if ($_POST['action'] == 'Update Profile') {
//action for update here
} else if ($_POST['action'] == 'Cancel Update') {
//action for delete
} else {
//invalid action!
}

Выше было заимствовано из этого ответа на стек https://stackoverflow.com/a/547848/

Вы можете заменить типы ввода в виде кнопок и используя <button type="submit" ...>

2

Другие решения

У вас есть основные проблемы со знанием HTML и PHP, а не с начальной загрузкой.

Поиск ТАК, прежде чем отправлять: Две кнопки отправки в одной форме

Должен быть отмечен как дубликат.

0

По вопросам рекламы [email protected]