Foros del Web » Programando para Internet » PHP »

no me sale validacion (ningun campo es obligatorio)

Estas en el tema de no me sale validacion (ningun campo es obligatorio) en el foro de PHP en Foros del Web. hola foreros, tengo un formulario en el que no todos los capos son obligatorios, o mejor dicho, ninguno lo es, y estoy tratando de validarlo ...
  #1 (permalink)  
Antiguo 20/03/2008, 10:28
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
no me sale validacion (ningun campo es obligatorio)

hola foreros, tengo un formulario en el que no todos los capos son obligatorios, o mejor dicho, ninguno lo es, y estoy tratando de validarlo de esta manera:
Código PHP:
<?php
if(isset($_POST['avanzada']) && $_POST['avanzada'] == 'Buscar'){
    if(!empty(
$_POST['file']) || !empty($_POST['funcionario']) || !empty($_POST['docFechaSalida']) || !empty($_POST['docFechaCumplimiento'])){
        echo 
"tostabien";
    }else{
        echo 
"llena algun campo";
    }
}
?>
<!-- el formulario -->
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="adv">
    <label>File:</label>
    <select name="file">
        <option>Escoger de la lista</option>
        <option value='1'>01</option>
        <option value='2'>02</option>
    </select>
    <label>Funcionarios</label>
    <select name="funcionario">
        <option>Escoger de la lista</option>
        <option value='1'>el Funcionario</option>
        <option value='2'>el Secretario</option>
        <option value='3'>el Administrador</option>
    </select>
    <label>Fecha de Salida:</label>
    <input type="text" name="docFechaSalida" />    
    <label>Fecha de Cumplimiento:</label>
    <input type="text" name="docFechaCumplimiento" />    
    <input type="submit" class="button" name="avanzada" value="Buscar" />
</form>
el caso es que en cualquier opcion me devuelve "tostabien"... y lo que quiero es que si no se ha llenado ningun campo, que me devuelva "llena algun campo" y no lo hace.

gracias mil de antemano
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 20/03/2008, 11:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: no me sale validacion (ningun campo es obligatorio)

Porque no cambias, en lugar de hacer asi tu if, hazlo de la siguiente forma:
Código PHP:
if(empty($_POST['file']) && empty($_POST['funcionario']) && empty($_POST['docFechaSalida']) && empty($_POST['docFechaCumplimiento'])){
        echo 
"llena algun campo";
    }else{
        echo 
"tostabien";
    } 
Saludos.
  #3 (permalink)  
Antiguo 20/03/2008, 12:10
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: no me sale validacion (ningun campo es obligatorio)

nop, asi obligas a llenar todos los campos y probe ponerle || y no me funciona tampoco, pues si selecciono solo un campo (lo cual es valido) me dice que "llena algun campo".

tambien probe:
Código PHP:
<?php
if($_POST['file'] ="" || $_POST['funcionario'] ="" ...)
?>
y me arme un rollo
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 20/03/2008, 12:50
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: no me sale validacion (ningun campo es obligatorio)

Podrías hacer algo así tambien..



Código PHP:
<?php
if(isset($_POST['avanzada']) && $_POST['avanzada'] == 'Buscar'){
    
$valido false;
    foreach(
$_POST as $clave => $valor){
        if(!empty(
$valor) && $valor!='Escoger de la lista' && $valor!='Buscar')
        {
        
$valido true;
        break;
        }
    }
    if(
$valido){
    echo 
"AL menos uno lleno";
    }else
    {
    echo 
"Debes de llenar algo";
    } 
}
?>
<!-- el formulario -->
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="adv">
    <label>File:</label>
    <select name="file">
        <option>Escoger de la lista</option>
        <option value='1'>01</option>
        <option value='2'>02</option>
    </select>
    <label>Funcionarios</label>
    <select name="funcionario">
        <option>Escoger de la lista</option>
        <option value='1'>el Funcionario</option>
        <option value='2'>el Secretario</option>
        <option value='3'>el Administrador</option>
    </select>
    <label>Fecha de Salida:</label>
    <input type="text" name="docFechaSalida" />    
    <label>Fecha de Cumplimiento:</label>
    <input type="text" name="docFechaCumplimiento" />    
    <input type="submit" class="button" name="avanzada" value="Buscar" />
</form>
Tambien lo que sucede es que aunque tu no le pongas Valor al option cuando se envia por post su valor por default es.. "Escoger de la lista" entonces por lo tanto ya tiene algo y tu validación no funcionara.. por que ya habra algo lleno aunque tu pienses que no, por que para ti no tiene sentido..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador

Última edición por _ssx; 20/03/2008 a las 12:59
  #5 (permalink)  
Antiguo 20/03/2008, 12:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Re: no me sale validacion (ningun campo es obligatorio)

usa el if q te dijo GatorV y al primer option de cada select agregale value=''
te quedaria asi:
<option value=''>Escoger de la lista</option>
  #6 (permalink)  
Antiguo 20/03/2008, 13:01
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: no me sale validacion (ningun campo es obligatorio)

Cita:
Iniciado por GatorV Ver Mensaje
Porque no cambias, en lugar de hacer asi tu if, hazlo de la siguiente forma:
Código PHP:
if(empty($_POST['file']) && empty($_POST['funcionario']) && empty($_POST['docFechaSalida']) && empty($_POST['docFechaCumplimiento'])){
        echo 
"llena algun campo";
    }else{
        echo 
"tostabien";
    } 
Saludos.
Cita:
Iniciado por rogertm Ver Mensaje
nop, asi obligas a llenar todos los campos y probe ponerle || y no me funciona tampoco, pues si selecciono solo un campo (lo cual es valido) me dice que "llena algun campo".

tambien probe:
Código PHP:
<?php
if($_POST['file'] ="" || $_POST['funcionario'] ="" ...)
?>
y me arme un rollo
Lo probaste tal y como te lo puso? En ese código, la condición es que si todos los campos están vacios (por eso usa && y empty()) muestra el error de que debe llenar alguno, mientras que si hay alguno, aunque sea uno sólo, lleno, ya no se cumple la condición y pasa al else.

Un saludo,
  #7 (permalink)  
Antiguo 20/03/2008, 13:06
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: no me sale validacion (ningun campo es obligatorio)

a ver, no creo que me sea rentable usar un bucle, el asunto es que con los datos enviados por el formulario quiero hacer una busqueda y que me quede asi mas o menos:
Código PHP:
<?php
if(isset($_POST['avanzada']) && $_POST['avanzada'] == 'Buscar'){
    if(!empty(
$_POST['file']) || !empty($_POST['funcionario']) || !empty($_POST['docFechaSalida']) || !empty($_POST['docFechaCumplimiento'])){
        
$sqlSearch mysql_query("AQUI la BUSQUEDA");
    }else{
        echo 
"llena algun campo";
    }
}
?>
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 20/03/2008, 13:10
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: no me sale validacion (ningun campo es obligatorio)

Entonces ponle un valor a tus selects, o tambien en tus ifs, agrega que el dato se diferente de "selecciona una opcion", por que eso ya automaticamente es un valor y tu empty no funcionara..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #9 (permalink)  
Antiguo 20/03/2008, 13:15
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: no me sale validacion (ningun campo es obligatorio)

Cita:
por @_ssx
Tambien lo que sucede es que aunque tu no le pongas Valor al option cuando se envia por post su valor por default es.. "Escoger de la lista" entonces por lo tanto ya tiene algo y tu validación no funcionara.. por que ya habra algo lleno aunque tu pienses que no, por que para ti no tiene sentido..
era justo eso.

gracias a todos

ya lo dijo quien lo dijo:
Cita:
no te acostaras sin antes aprender algo nuevo
por rogertm
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 20/03/2008, 13:24
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: no me sale validacion (ningun campo es obligatorio)

bueno, al final use el codigo que propuso el moderador y el form como dijo _ssx, asi:
Código PHP:
<select name="file">
    <
option value="">Escoger de la lista</option>
<!-- -->
<
select name="funcionario">
    <
option value="">Escoger de la lista</option>
<!-- --> 
okram, en realidad si, de primera el codigo que me dio gatorv me parecio bien logico, pero al ver que no me funciono me enrede

gracias mil una vez mas
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #11 (permalink)  
Antiguo 20/03/2008, 13:46
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 17 años, 4 meses
Puntos: 5
Re: no me sale validacion (ningun campo es obligatorio)

Cita:
Iniciado por rogertm Ver Mensaje
nop, asi obligas a llenar todos los campos y probe ponerle || y no me funciona tampoco, pues si selecciono solo un campo (lo cual es valido) me dice que "llena algun campo".

tambien probe:
Código PHP:
<?php
if($_POST['file'] ="" || $_POST['funcionario'] ="" ...)
?>
y me arme un rollo
Hola, pues esto último está mal, debe ser dobre signo igual para comparar (==)

Hasta Luego .-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:16.