Pregunta

Tengo una forma que yo estoy manejando con PHP. Antes de que el usuario envía, el botón de reinicio funciona. Pero cuando presenten y las recargas de la página (que he hecho los campos del formulario pegajosa sobre la base de los valores de $ _POST) el reinicio no funciona. ¿Cómo puedo arreglar eso? EDITAR: Por ejemplo, una casilla de verificación en la forma:

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

Y el código 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: Al final, sólo escondí el botón si el formulario ha sido enviado (pero no está completo). Tal vez nadie se dará cuenta.

¿Fue útil?

Solución

He sido sólo a través de esta cosa exacta, ver a mi pregunta anterior y las respuestas increíbles votos .

Al final tuve que hacer un restablecimiento manual de los valores en PHP.

EDIT: No es lo mismo escenario para usted como usted parece estar poblar los valores del formulario basado en $ _POST en lugar de $ _SESSION como lo hice. En cuyo caso, consulte la respuesta que acepte a través del foro.

Otros consejos

El botón de reinicio deshace los cambios en la forma, realizadas por el usuario, no borra los valores por defecto. Si desea borrar todos los valores por defecto, se puede usar JavaScript para hacer algo como:

<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;" />

...

Se podría reaccionar al evento de reinicio con un unset($_POST).

contestado a esta ya en otro post:

Sólo soy un intermedio en PHP, y un poco perezoso a sumergirse en un nuevo idioma como jQuery, pero no es la raíz de una solución simple y elegante?

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

No se puede ver una razón por qué no tener dos botones de envío, sólo con propósitos diferentes. Después, simplemente:

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

Usted acaba de redefinir sus valores de nuevo a lo que el defecto se supone que es.

El botón de reinicio deshace los cambios en los valores del formulario editado, realizadas por el usuario, no borra por defecto values.The botón que se usa comúnmente en las páginas editadas restablecer o enviar páginas

<input type="reset" value="Reset" name="reset" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top