Как я могу использовать кнопку сброса для php-формы?

У меня есть форма, с которой я работаю с PHP. Перед тем, как пользователь отправит его, кнопка Reset будет работать. Но когда они отправляют и перезагружают страницу (я сделал поля формы липкими на основе значений $ _POST), сброс не работает. Как я могу это исправить? EDIT: Например, флажок в форме:

<input type="checkbox" <?php if (isset($_POST['cb12'])){echo 'checked="checked"';} ?> name="cb12" tabindex="34" id=cb value="Education"> 

И HTML:

 <tr> <td colspan="5" valign="top" class="addit" ><div class="sectionbreak topsp" > <input type="hidden" name="failure" value="failure.html" > <p> <input type="submit" name="Submit" value="Submit" tabindex="49"> Sends your application by email to The Boggs</p> <p> <input type="reset" name="Reset" value="Reset" tabindex="50"> Clears all the fields</p> </div></td> </tr> 

EDIT: В конце концов, я просто спрятал кнопку, если форма была отправлена ​​(но не завершена). Возможно, никто не заметит.

Я только что прошел через эту точную вещь, посмотрю мой предыдущий вопрос и невероятные полезные ответы .

В итоге мне пришлось выполнить ручной сброс значений в PHP.

EDIT: Не совсем такой же сценарий для вас, как вы, кажется, заполняете значения формы на основе $ _POST, а не $ _SESSION, как я. В этом случае см. Ответ, который я принял по ссылке выше.

Кнопка сброса отменяет изменения в форме, созданной пользователем, и не стирает значения по умолчанию. Если вы хотите удалить все значения по умолчанию, вы можете использовать JavaScript, чтобы сделать что-то вроде:

 <script type="text/javascript"> function resetForm(myFormId) { var myForm = document.getElementById(myFormId); for (var i = 0; i < myForm.elements.length; i++) { if ('submit' != myForm.elements[i].type && 'reset' != myForm.elements[i].type) { myForm.elements[i].checked = false; myForm.elements[i].value = ''; myForm.elements[i].selectedIndex = 0; } } } </script> 

 <form id="myFormId" ...> <input name="reset" type="reset" onclick="resetForm('myFormId'); return false;" /> 

Вы можете отреагировать на событие сброса с unset($_POST) .

Ответил это уже в другом сообщении:

Я просто являюсь промежуточным звеном в PHP и немного ленив, чтобы погрузиться в новый язык, такой как JQuery, но не следующее простое и элегантное решение?

 <input name="Submit1" type="submit" value="Get free quote" /> <input name="submitreset" type="submit" value="Reset" /> 

Не вижу причины, почему у вас нет двух кнопок отправки, только с разными целями. Тогда просто:

 if ($_POST['submitreset']=="Reset") { $_source = "--Choose language from--"; $_target = "--Choose language to--"; } 

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

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

 <input type="reset" value="Reset" name="reset" />