У меня есть форма 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';
}
?>
Проблема здесь в том, что вы используете все на одной странице, 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" ...>
У вас есть основные проблемы со знанием HTML и PHP, а не с начальной загрузкой.
Поиск ТАК, прежде чем отправлять: Две кнопки отправки в одной форме
Должен быть отмечен как дубликат.