Foros del Web » Programando para Internet » PHP »

Validar checkbox dinamicos

Estas en el tema de Validar checkbox dinamicos en el foro de PHP en Foros del Web. Hola, queria saber como se pueden validar unos checkbox que genero dimanicamente despues de una consulta a la base de datos. Los queria validar en ...
  #1 (permalink)  
Antiguo 08/04/2010, 06:57
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Validar checkbox dinamicos

Hola, queria saber como se pueden validar unos checkbox que genero dimanicamente despues de una consulta a la base de datos.

Los queria validar en php porque en javascript no me acaba de salir y porque es mejor en lenguaje de servidor ya que no se puede alterar nada y es mas seguro.

Código PHP:
while($row mysql_fetch_array($result9))
{
echo 
"<form action='php_A.php' method='post' name='frA' id='frA'>";
      echo 
"<input type='checkbox' name='lidotxt[]' id='lidotxt".$row['codigocir']."' value='".$row['codigocir']."'></input>";
      echo 
"<input type='submit' name='confirmar' id='confirmar' value='Confirmar'>";
echo 
"</form>";

Despues lo recojo con este codigo en php_A.php:
Código PHP:
if(isset($_POST['lidotxt']))
{
 include 
"../conexion.php";
 for(
$i 0$i count($_POST['lidotxt']); $i++)
    {                      
    
$sqlcle=" UPDATE tabla55 ..................... ";
    
$resultcle=mysql_query($sqlcle,$conexion) or die(mysql_error());                            
        }
include 
"../cerrar_conexion.php";

LO QUE PRETENDO ES QUE ANTES DE EJECUTAR LA ACTUALIZACION DE LA TABLA55 COMPROBAR QUE AL MENOS UN CHECKBOX ESTÁ SELECCIONADO, SINO SACAR UN MENSAJE DE ADVERTENCIA
  #2 (permalink)  
Antiguo 08/04/2010, 08:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 9 meses
Puntos: 1517
Respuesta: Validar checkbox dinamicos

Acuérdate que esto es un foro, no un chat. Las respuestas pueden tomar un poco de tiempo. Te recomiendo que esperes un lapso aproximado de 24 horas para volver a preguntar si no haz recibido respuesta.

Contestando la pregunta, puedes usar count para verificar si un checkbox ha sido seleccionado al menos. Los checkbox, si todos son de un mismo renglón, puedes colocarle un mismo nombre y que estén declarados como array. Ejemplo
Código HTML:
Ver original
  1. <input type="checkbox" name="nombre[]" />
  2. <input type="checkbox" name="nombre[]" />
  3. <input type="checkbox" name="nombre[]" />
  4. <input type="checkbox" name="nombre[]" />
  5. <input type="checkbox" name="nombre[]" />
Luego eso lo verificas con count. Ejemplo con el método POST:
Código PHP:
Ver original
  1. echo count($_POST['nombre']);
Si sale un 0, entonces ninguno fue seleccionado, de lo contrario te dirá cuantos han sido seleccionados.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/04/2010, 08:49
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar checkbox dinamicos

Pues así ya he probado y no me sale. Lo he hecho así:

Código PHP:
if(count($_POST['nombre'])=='0')
{
echo 
"no hay nada seleccionado";

Si tengo porejemplo 3 checkbox, si no marco ninguno, lo que me sale en el $_POST['nombre'] es:
ARRAY
ARRAY
ARRAY

No me sale ningun cero
  #4 (permalink)  
Antiguo 08/04/2010, 08:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 9 meses
Puntos: 1517
Respuesta: Validar checkbox dinamicos

Yo hice la prueba y si funcionó, pero de esta forma
Código PHP:
Ver original
  1. <?php
  2. if(!empty($_GET['nombre'])){
  3.     echo count($_GET['nombre']);
  4. }
  5. ?>
  6.  
  7. <form action="b.php">
  8. <input type="checkbox" name="nombre[]" />
  9. <input type="checkbox" name="nombre[]" />
  10. <input type="checkbox" name="nombre[]" />
  11. <input type="checkbox" name="nombre[]" />
  12. <input type="checkbox" name="nombre[]" />
  13. <input type="submit" />
  14. </form>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 08/04/2010, 09:17
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar checkbox dinamicos

Voy a probar, pero que es eso de !empty?
  #6 (permalink)  
Antiguo 08/04/2010, 09:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 9 meses
Puntos: 1517
Respuesta: Validar checkbox dinamicos

Verifica esta información acerca de empty.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 08/04/2010, 09:42
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar checkbox dinamicos

He probado con este codigo y parece que funciona,
¿que opinas abimaelrc?

if(isset($_POST['nombre']))
{
...Utilizo los valores para generar una consulta de actualizacion....
}
else
{
echo "NO HAS SELECCIONADO NADA";
}
  #8 (permalink)  
Antiguo 08/04/2010, 09:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 9 meses
Puntos: 1517
Respuesta: Validar checkbox dinamicos

También puedes hacerlo así, si es que declaraste todos los campos checkbox como te indique.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 08/04/2010, 09:48
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar checkbox dinamicos

Los tengo asi:
echo "<input type='checkbox' name='lidotxt[]' id='lidotxt".$row['codigocir']."' value='".$row['codigocir']."'></input>";

Si se utilizan para enviarlos a otra pagina para tratarlos, se entiende que estan declarados ¿no?digo yo nosé
  #10 (permalink)  
Antiguo 08/04/2010, 09:57
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar checkbox dinamicos

¿Que opcion es mejor de estas dos?

OPCION 1
Código PHP:
if(isset($_POST['lidotxt']))
{
 include 
"../conexion.php";
 for(
$i 0$i count($_POST['lidotxt']); $i++)
    {                      
    
$sqlcle=" UPDATE tabla55 ..................... ";
    
$resultcle=mysql_query($sqlcle,$conexion) or die(mysql_error());                            
        }
include 
"../cerrar_conexion.php";

else
{
 echo 
"NO HAY NADA SELECCIONADO";


OPCION2
Código PHP:
if(isset($_POST['lidotxt']))
{
 include 
"../conexion.php";
 for(
$i 0$i count($_POST['lidotxt']); $i++)
    {                      
    
$sqlcle=" UPDATE tabla55 ..................... ";
    
$resultcle=mysql_query($sqlcle,$conexion) or die(mysql_error());                            
        }
include 
"../cerrar_conexion.php";
}
 
if(empty(
$_GET['lido']))
{
 echo 
"NO HAY NADA SELECCIONADO";

La diferencia es que la OPCION 1 le pongo un else, y la OPCION2 le pongo el empty ¿cual es mejor?
  #11 (permalink)  
Antiguo 15/05/2010, 17:58
 
Fecha de Ingreso: enero-2010
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Validar checkbox dinamicos

siendo muy novata en el asunto.. ..veo que ya declaras el array en el name del campo


echo "<input type='checkbox' name='lidotxt[]' id='lidotxt".$row['codigocir']."' value='".$row['codigocir']."'></input>";


yo lo haria así:

$opciones=$_POST["lidotxt"];

if(is_array($opciones)){
$otro=count($opciones);

echo $otro;
//imprimiendo eso podes saber el numero de chekcbox han sido seleccionados

}

o si prefieres simplemente pregunta

if (!$opciones) {
echo "el array está vacio, No ha seleccionado ninguna opción";

}
espero haber aportado algo ;)

Etiquetas: checkbox, dinamicos
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 06:13.