Как я могу использовать кнопку сброса для формы PHP? - PullRequest
0 голосов
/ 02 апреля 2009

У меня есть форма, которую я обрабатываю с помощью PHP. Прежде чем пользователь отправит его, кнопка «Сброс» работает. Но когда они отправляются и страница перезагружается (я сделал поля формы закрепленными на основе значений $ _POST), сброс не работает. Как я могу это исправить? РЕДАКТИРОВАТЬ: Например, флажок в форме:

 <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: В конце концов, я просто спрятал кнопку, если форма была отправлена ​​(но не заполнена). Может быть, никто не заметит.

Ответы [ 5 ]

7 голосов
/ 03 апреля 2009

Кнопка сброса отменяет внесенные пользователем изменения в форму, она не стирает значения по умолчанию. Если вы хотите стереть все значения по умолчанию, вы можете использовать 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;" />

...

4 голосов
/ 02 апреля 2009

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

2 голосов
/ 14 января 2016

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

<input type="reset" value="Reset" name="reset" />
2 голосов
/ 29 августа 2012

Ответили уже в другом посте:

Я просто посредник в 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--"; }

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

2 голосов
/ 03 апреля 2009

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

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

РЕДАКТИРОВАТЬ: Не совсем такой сценарий для вас, как вы, кажется, заполняете значения формы на основе $ _POST, а не $ _SESSION, как я сделал. В этом случае посмотрите ответ, который я принял по ссылке выше.

...