Форма отправляется дважды даже после отключения кнопки отправки - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю над PHP воспламенителем кода, в котором моя форма первоначально отправлялась несколько раз. У меня было 2 кнопки отправки, при нажатии на первую кнопку открывается всплывающее окно, а вторая кнопка отправки находится во всплывающем окне. При отправке формы я отключаю обе кнопки. Но все же в моей базе данных было многократное вхождение.

Я попытался обновить страницу, чтобы проверить, не будет ли она отправлена ​​снова, но этого не произошло. Также проверял наличие проблем в разных браузерах, но все тщетно.

Ниже приведены фрагменты, нельзя добавить всю форму, так как она слишком большая. Форма разделена на разделы со следующими и предыдущими кнопками, а в последнем разделе мы отображаем кнопку отправки и всплывающее окно.

<form name="ques_response" id="ques_response" action="<?php echo base_url(); ?>data/insert" method="post" enctype="multipart/form-data">

Это различные кнопки:

<button type="submit" class="btn btn-blue btn-back" id="prev-button">Previous</button>
<button type="submit" class="btn btn-danger" id="final-button">Submit</button>
<button type="submit" class="btn btn-blue btn-next" id="next-button">Next</button>
<input type="submit" id="popup-final-button" name="Submit" value="Final" class="final_submit btn btn-blue btn-save" >

И вот где я отключаю кнопки:

$("#ques_response").submit(function(){
    $('#final-button').attr("disabled",true);
    $('#popup-final-button').attr("disabled",true);
});

Что мне действительно нужно знать, так это то, почему даже после отключения кнопок форма отправляется дважды. Я более заинтересован в воссоздании этого вопроса, если есть способ. Также, если я могу что-то сделать, чтобы избежать этого. Любая обработка на стороне сервера тоже.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Существует 4 кнопки отправки, поэтому при каждом нажатии любой из этих кнопок будет отправлена ​​форма. Вы должны использовать только одну кнопку отправки.

Используйте другие кнопки для взаимодействия только на странице.

В вашей форме должна быть только одна кнопка type="submit". Снимите type="submit" с остальных трех кнопок.

0 голосов
/ 27 апреля 2018

Отключение кнопок не препятствует отправке формы; отправляется форма , а не кнопки. Вместо этого используйте preventDefault в обработчике submit:

$("#ques_response").submit(function(e){
  // if you want to prevent the form submission that was just triggered from being submitted for real:
  e.preventDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...