Cuando tenemos un listado muuuuy extenso de elementos de tipo checkbox dentro de un formulario, resulta un poco cansador seleccionar uno por uno estos elementos. Entonces, veremos como podemos solucionar este problema en JavaScript.
Siguiendo el ejemplo del post anterior en el que listábamos los elementos de una base de datos, tendremos lo siguiente:
<?php
/*Conexion a la DB*/
include("conexion.php");
/*Formulario*/
echo "<form name='nombre_form' action='nombre_archivo.php' method='post'>";
//Consulta la tabla idioma
$consulta=("SELECT * FROM idioma");
$i=0;
//Recorre la tabla idioma
while($registro=mysql_fetch_array($consulta))
{
//Listado de Checkbox
echo "<input type='checkbox' name='.$i.' value='.$registro['id_idioma'].'/>".$registro['nom_idioma'];
$i++;
}
echo "<a href='javascript:seleccionar_todo()' >Marcar Todos</a> | <a href='javascript:deseleccionar_todo()' >Desmarcar Todos</a>";
echo "</form>";
?>
A continuación, lo más importante, “seleccionar y deseleccionar todos los checkbox”:
function seleccionar_todo()
{//Funcion que permite seleccionar todos los checkbox
form = document.forms["nombre_form"]
for (i=0;i<form.elements.length;i++)
{
if(form.elements[i].type == "checkbox")form.elements[i].checked=1;
}
}
function deseleccionar_todo()
{//Funcion que permite deseleccionar todos los checkbox
form = document.forms["nombre_form"]
for (i=0;i<form.elements.length;i++)
{
if(form.elements[i].type == "checkbox")form.elements[i].checked=0;
}
}
Y eso es todo. Espero que les sea útil.
me podrias explicar como coloco el javascript? lo guardo como archivo.cgi o lo inserto en el php ya que tengo la misma duda con el post anterior. Justo necesito hacer algo parecido pero la parte del javascript no me queda clara.
Hola Koyer, mirá, hay dos formas de hacer la parte de JavaScript:
-Una, podrias colocar el código js en la parte del head del archivo, entre las etiquetas script, y listo.
-Otra forma seria, crear un archivo.js en el que directamente colocas el código JS dentro del mismo y luego, en el archivo.php donde lo necesitas, llamarlo mediante la etiqueta link en la parte del head.
Espero que te sirva, cualquier cosa no dudes en consultarme.
Saludos!
Ufff me fue de mucha utilidad!!!
Gracias 1000!