Cita:
Iniciado por truman_truman Hola se me ocurre algo asi:
Código PHP:
Ver original<?php
function campoVacio($valor_del_imput)
{
if($valor_del_imput=="")
{
echo 'class="aviso-formulario"';
}
}
?>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" value="
<?php if(isset($_POST['nombre']) && $_POST['nombre'] == ""){echo "Incompleto";} else {echo $_POST['nombre'];} ?>"
<?php campoVacio($_POST['nombre']);?>
/><br />
Pero igualmente lo tenés que hacer uno por uno
.
Hola truman_truman, me ha servido de mucho tu explicación, es más incluso he metido la opción value dentro de la misma función y así me ahorro todavía más código
Código PHP:
Ver original<?php
function incompleto($valor_input)
{
if(isset($valor_input) && $valor_input == "" || $valor_input == "Incompleto") {echo "value=\"Incompleto\"";
echo ' class="aviso-formulario"';}
else {echo "value=\"$valor_input\"";}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<legend>Tomador</legend>
<fieldset>
<legend>Datos personales</legend>
<!-- TEXT -->
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" <?php incompleto($_POST['nombre']);?> /><br />
<label for="apellidos">Apellidos:</label>
<input type="text" id="apellidos" name="apellidos" <?php incompleto($_POST['apellidos']);?> /><br />
<label for="direccion">Dirección:</label>
<input type="text" id="direccion" name="direccion" <?php incompleto($_POST['direccion']);?> /><br />
<label for="dni">D.N.I.</label>
<input type="text" id="dni" name="dni" <?php incompleto($_POST['dni']);?> /><br />
Cita:
Iniciado por abimaelrc Primero para verificar si un campo está vacio con tan solo empty() es suficiente. Lo otro, esa es una de las partes más tediosas para trabajar. Debes hacer validaciones de cada campo que consideres requisito y que no puede estar vacio y también mostrar el aviso correspondiente. Si tienes 10 campos que son requisitos y no pueden estar vacios, debes hacer 10 validaciones y 10 avisos. Podrías preparar un funcion que todo aquello que se repita lo use, pero sabes que debes colocar esa función en los 10 lugares.
Gracias de nuevo por la explicación abimaelrc, más o menos es lo que imaginaba, solo que en vez de empty() he seguido usando isset.
Cita:
Iniciado por Triby Por lo general, cuando creo formularios, incluyo un texto en cada campo que indica al usuario como llenarlo y, al hacer las validaciones, puedes usar una matriz asociativa para marcar los que no se llenaron correctamente, de forma que puedas utilizar una sola funcion para mostrar la ayuda y errores:
Código PHP:
Ver original// Validar nombre:
$nombre = trim($_POST['nombre']); $errores['nombre'] = 'El nombre debe contener entre 3 y 20 caracteres, ahora tiene: ' . strlen($nombre); }
// Despues, en el formulario:
echo "<label for=\"nombre\">Nombre:</label>\n";
echo "<input type=\"text\" name=\"nombre\" id=\"nombre\" value=\"$nombre\" size=\"20\" maxlength=\"20\" />\n";
ayuda_error('nombre', 'Por favor teclea tu nombre.');
// Y la funcion para mostrar ayuda o errores:
function ayuda_error($campo, $ayuda) {
global $errores;
if(isset($errores[$campo])) { // Aqui muestras el mensaje de error, con estilo CSS si es necesario
} else {
// Aqui muestras la ayuda
}
}
Realmente no es tan complicado, incluso tengo funciones para crear campos de formulario (input text, select, checkbox, radio, textarea y botones) y estoy trabajando en una clase, aunque no se si realmente llegue a usarla, depende de como me adapte en el proyecto que estoy trabajando.
Gracias Triby, por ahora he intentado algo parecido, quizás más adelante cuando tenga más conocimientos lo intente también con una clase
Cita:
Iniciado por iviamontes pero para eso no es usa js ???
de todas formas es bueno revisar de nuevo las variables en el php, pero sin mensajes ni nada, solo x un tema de seguridad
Hola iviamontes, te paso un enlace de caricatos que habla de algo parecido de un tema reciente del foro web general:
http://www.pepemolina.com/index.php?...1%2C+%A1Web%21...
http://www.forosdelweb.com/f91/que-m...de-php-922550/
Gracias a todos por la ayuda