Foros del Web » Programando para Internet » PHP »

validar un numero fijo de checkboxes dinámicos

Estas en el tema de validar un numero fijo de checkboxes dinámicos en el foro de PHP en Foros del Web. ¡hola! k tl? tengo enter manos un script en el que se va creando un formulario con una tabla con checkboxes e imagenes. La idea ...
  #1 (permalink)  
Antiguo 25/02/2010, 05:36
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
validar un numero fijo de checkboxes dinámicos

¡hola! k tl?

tengo enter manos un script en el que se va creando un formulario con una tabla con checkboxes e imagenes.
La idea es que al hacer click en el boton aceptar,mediante un JS se valide si hay un numero fijo de ellos seleccionado (en este caso 6). Para ello he creado este JS

Código:
 <script language="javascript">

       function validarCheck(aux,maxi) {
	var cmax=0;
	for(var i=0; i<aux; i++) {
		if (checkForm.nombre[i].checked) {
			cmax++;
		}
	}
	if (cmax==0) {
		alert("Selecciona 6 opciones");
	} else {
		if(cmax!=maxi){
			alert ("Selecciona 6 opciones");
		}else{
                          checkForm.submit();
             }
}
	   }
</script>


El caso es que al hacer click en el boton aceptar, éste no hace nada. Por que puede ser?
Os dejo aqui el código por si alguien pudiera ayudarme,ya que no veo el porque de esat situación
Muchisimas gracias




Código PHP:
<body>
<html>
<head>
<title>Elegir Configuracion</title>
        <link rel="stylesheet" type="text/css" href="estilos.css"/>

</head>
    <p class="tituloInicio">elegir configuracion  </p>
    
        <?
        
//se conecta con la BD
        
$link mysql_connect('localhost''root');
        if (!
$link)
            {echo 
" no se puede conectar";}
            
        
mysql_select_db("DatosConfiguraciones",$link);
        
$consulta="SELECT * FROM tabla_arma";
        
$rdomysql_query($consulta,$link);
        echo 
"<form method=post name=checkform action=crearConfiguracionPersonaje.php>";
        
$num=0;
        
?><p class="textoAuxi">armas</p><?
        
echo" <table border=1>";
        while (
$fila=mysql_fetch_array($rdo)){
                    
?>
           <tr class="tabla">
            <td width="33" scope="row"><input name="nombre"  type="checkbox"  value="<? echo $fila['arma']; ?>"/> <?  echo $fila['arma'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenArma']."> </td>
               </tr>

        <? 
                     $num
++;
}
?>
                </table>
                
                <input type="button" value="Aceptar" class="botonSeleccion" onClick="validarCheck($num,6)">
                </form>
                <?

        
                $consulta2
="SELECT * FROM tabla_personaje";
                
$rdo2mysql_query($consulta2,$link);
                
?><p class="textoAuxi">personajes</p><?
                
                        
echo" <table border=1>";
        while (
$fila=mysql_fetch_array($rdo2)){
                    
?>
           <tr class="tabla">
            <td width="33" scope="row"><input name="nombre" type="checkbox" class="radioB" value="<? echo $fila['personaje']; ?>"/> <?  echo $fila['personaje'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenPersonaje']."> </td>
               </tr>

        <? }?>
                </table>
                <?
                
                
                
                $consulta3
="SELECT * FROM tabla_lugar";
                
$rdo3mysql_query($consulta3,$link);
                
?><p class="textoAuxi">lugares</p><?
                
echo" <table border=1>";
        while (
$fila=mysql_fetch_array($rdo3)){
                    
?>
                    
           <tr class="tabla">
            <td width="33" scope="row"><input name="nombre"  type="checkbox" class="radioB" value="<? echo $fila['lugar']; ?>"/> <?  echo $fila['lugar'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenLugar']."> </td>
               </tr>

        <? }?>
                </table>

</body>
</html>
  #2 (permalink)  
Antiguo 25/02/2010, 05:43
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: validar un numero fijo de checkboxes dinámicos

Para empezar esta línea está fatal:
Código PHP:
Ver original
  1. <td width="33" scope="row"><input name="nombre"  type="checkbox"  value="<? echo $fila['arma']; ?>"/> <?  echo $fila['arma'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenArma']."> </td>

Y en tu botón tienes el mismo error:
Código PHP:
Ver original
  1. <input type="button" value="Aceptar" class="botonSeleccion" onClick="validarCheck($num,6)">
Tu función javascript está recibiendo $num, pero no está recibiendo el valor de este, sino la palabra $num (y encima sin comillas)
Por tanto es un error javascript muy gordo, y no php.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 25/02/2010, 05:53
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: validar un numero fijo de checkboxes dinámicos

ay! si las comillas se me han olvidado

en la linea que me dices que está mal, no encuentro otra manera posible de poder hacer esto.He utilizado algo similar en otro script con radio buttons y funciona bien.¿Por donde podría ir una mejor solución?


Código PHP:
<td width="33" scope="row"><input name="nombre"  type="checkbox"  value="<? echo $fila['arma']; ?>"/> <?  echo $fila['arma'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenArma']."> </td>

Gracias
  #4 (permalink)  
Antiguo 25/02/2010, 06:01
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: validar un numero fijo de checkboxes dinámicos

El código lo has hecho tú?
Si en la misma línea tienes la forma correcta de hacerlo, cómo es que no sabes donde está elproblema? Ves la diferencia entre estas dos líneas (la segunda es la buena)?:

Código PHP:
Ver original
  1. <td width="33" scope="row"><input name="nombre"  type="checkbox"  value="<? echo $fila['arma']; ?>"/> <?  echo $fila['arma'];     ?>  <img src="mostrarImagenes.php?imagenArma=.$fila['imagenArma']."> </td>
Código PHP:
Ver original
  1. <td width="33" scope="row"><input name="nombre"  type="checkbox"  value="<? echo $fila['arma']; ?>"/> <?  echo $fila['arma'];     ?>  <img src="mostrarImagenes.php?imagenArma=<? echo $fila['imagenArma'];?>"> </td>
En serio que no ves el error?
El botón tiene el mismo error, no le hacen falta comillas, sólo que javascript te detectaba $num como un número, y es una cadena simbólicoalfabética ($,n,u,m)
¿En serio no te das cuenta?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 25/02/2010, 06:14
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: validar un numero fijo de checkboxes dinámicos

pues la verdad es que no me doy cuenta de cual es el error, no hace mucho que emepecé a programar php y JS.
Además yo quiero que lo trate como número, puesto que es el limitador del bucle que hay en JS...no sé si te estoy entendiendo bien ,perdona...
  #6 (permalink)  
Antiguo 25/02/2010, 06:18
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: validar un numero fijo de checkboxes dinámicos

Mira el final de las dos líneas que te puse. NO VES LA DIFERENCIA????? no es saber programar, es ver diferencias como en los pasatiempos.
Ahora te pongo el botón que tienes tú mal:
Código PHP:
Ver original
  1. <input type="button" value="Aceptar" class="botonSeleccion" onClick="validarCheck($num,6)">
Y este es el que está bien:
Código PHP:
Ver original
  1. <input type="button" value="Aceptar" class="botonSeleccion" onClick="validarCheck(<? echo $num;?>,6)">

Es el mismo error en las dos líneas, por eso tienes que tener cuidado. Seguro que en tu código tienes más de estos.

Te recomiendo que empieces por HTML y luego pásate http://es.php.net para ver cómo funciona lo que quieras. Ahí está todo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 25/02/2010, 06:29
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: validar un numero fijo de checkboxes dinámicos

Muchas gracias por tu ayuda.Ya lo he solucionado.A parte de lo que tu me has dicho habia otro problemilla con el nombre del formulario que ya he solucionado.
  #8 (permalink)  
Antiguo 25/02/2010, 06:37
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: validar un numero fijo de checkboxes dinámicos

No hay de qué! Es mejor que te comparara líneas y te dieras cuenta del error a que te pusiera el código para que lo pegues y nunca sabrías cuál era el problema. No crees?

Saludos
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: checkboxes, fijo, numero
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 16:29.