¿Cómo conservar el estado de una casilla de verificación después de la validación del lado del servidor en php?
Frecuentes
Visto 1,027 veces
0
Tengo un formulario con varios campos (Nombre, email, contraseña, etc.). También tiene un conjunto de 5 casillas de verificación. Como tengo que actualizar una base de datos, prefiero hacer la validación del lado del servidor y estoy usando php.
Si ocurre un error de validación, el error se muestra en la parte superior de la página junto con el formulario y los datos ingresados previamente en los campos de texto. No puedo conservar el estado de las casillas de verificación y los botones de opción. Todos vuelven a no estar seleccionados. ¿Qué debo hacer para conservar el estado de las casillas de verificación y los botones de opción?
El formulario se parece a...:
Password:<input type="text" name="password" size="16" maxlength="9" value="<?php echo $_POST['password']?>"/>
Retype Password:<input type="text" name="repassword" value="<?php echo $_POST['repassword']?>"/>
Select:<br />
<input type="checkbox" name="option1" value="on1" id="opt1"/> <label for="opt1">Option1</label><br />
<input type="checkbox" name="option2" value="on2" id="opt2"/> <label for="opt2">Option2</label><br />
<input type="checkbox" name="option3" value="on3" id="opt3"/> <label for="opt3">Option3</label><br />
<input type="checkbox" name="option4" value="on4" id="opt4"/> <label for="opt4">Option4</label><br />
<input type="checkbox" name="option5" value="on5" id="opt5"/> <label for="opt5">Option5</label><br />
Mobile No:<input type="text" name="mobileno" maxlength="10" value="<?php echo $_POST['mobileno']?>"/>
2 Respuestas
1
De lo que estás hablando es de Sticky Forms. Puede implementar formularios adhesivos de muchas maneras, mi elección es usar la sesión. Si hay un error en su validación, simplemente descargue todo en sus datos POST en la sesión. En la página de su formulario, verifique si el valor está establecido en la sesión y establezca el valor predeterminado del formulario, contrólelo si es:
Página de validación:
<?php
session_start();
if(/** some error condition **/) {
foreach($_POST as $k => $v)
$_SESSION['sticky_'.$k] = $v;
header('Location: http://site.com/yourform.php');
exit();
}
?>
Página de formulario:
<?php session_start(); ?>
<input type = "checkbox" name = "option1" value = "on1" id = "opt1" <?php
if(isset($_SESSION['sticky_option1']))
echo('checked = "checked");
?>/>
Example TextBox: <input type = "text" name = "textBoxName" <?php
if(isset($_SESSION['sticky_textBoxName']))
echo('value = "' . $_SESSION['sticky_textBoxName'] . '"');
?>
...
<?php
// Erase the POST values from session after the HTML is constructed.
foreach($_SESSION as $k => $v)
if( strpos($k, 'sticky_' !== false )
unset($_SESSION[$k]);
?>
Respondido el 13 de junio de 12 a las 13:06
0
Agrega una checked
atribuya a cualquier casilla de verificación cuyo valor se encuentre en los datos enviados.
Respondido el 12 de junio de 12 a las 20:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php checkbox state validation or haz tu propia pregunta.
si hago eso, el botón de reinicio no podrá cambiar el estado de estas casillas de verificación. - RK Poddar