PHP Ayuda con checkboxes

HackerXtrmo

Bovino de alcurnia
#1
Bueno amigos tengo un problema con unos checkboxes

la cosa es asi...
1.-Con PHP consulto una BD y con esos datos creo una tabla y añado en una columna al final un checkbox.
2.-Quiero saber al presionar el boton de enviar que checkboxes fueron marcados (esto si lo he hecho hace tiempo)
3.-EL PROBLEMA ES: Debe haber un checkbox que al seleccionarlo ponga marcados todos los checkboxes de la tabla y viceversa.

La bronca aqui es que javascript solo puede acceder a los elementos que se cargan al inicio de la pagina porque el arbol DOM debe estar completo o eso es lo que creo y por lo tanto no puede acceder a los elementos creados dinamicamente con PHP, miren para que tengan una idea mas clara les dejo un codigo con que estuve probando, el chiste es hacer funcionar la opcion que dice "todos".

Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>

<script language="javascript" type="text/javascript"  >
	function changeChecks(){
		var checks = document.getElementByName("checks");
		var checkAll = document.getElementById("checkAll");
		for(var i=0; i<checks.length; i++){
			checks[i].checked = checkAll.checked;
		}
	}
</script>

</head>

<?php
$mychecks = $_POST[checks];

if(empty($mychecks))
	echo createChecks();
else{
	echo "Seleccionados...<br/>";
	foreach ($mychecks as $ck)
		echo $ck . "<br/>";
}

function createChecks(){
	$miArray = array();
	
	for($i=0; $i<8; $i++)
		 $miArray[]= "array de $i";
	
	$html = '<form id = "formBusqueda" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
	$html .= "
	<label>Todos<input type='checkbox' name='checkAll' id='checkAll' onclick='changeChecks();'</input></label>
	<table border='1'>";

	$i=0;
	foreach($miArray as $arr){
		$html .= "<tr>";
		$html .= "<td>$i</td>" . "<td>$arr</td>";
		$html .= "<td><input type='checkbox' name = 'checks[]' value='$arr'/></td>";
		$html .= "</tr>";
		$i++;
	} //foreach
	
	$html .= "</table>";
	$html .= "<input type='submit' value='Enviar chequeo'>
	</form>";
	
	return $html;
}
?>
<body>
</body>
</html>
Bueno por adelantado les doy las gracias, ya que se que hay muchos bakunos que ayudan a la buena.

PD el codigo de pruebas esta completo si quieren correrlo deben tener apache u otro
 
#2
Pues eso se hace con el famoso checkbox "Selccionar Todos", y claro, eso se hace con JavaSript, aqui tengo algo que puedes tomar como ejemplo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function marcar(p,f){
for(ii=0;n=f.elements[ii];ii++){
if(n.type=="checkbox")n.checked=p
}
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<input name="uno" type="checkbox" id="uno" value="checkbox" />
uno<br />
<input name="dos" type="checkbox" id="dos" value="checkbox" />
dos<br />
<input name="tres" type="checkbox" id="tres" value="checkbox" />
tres<br />
<input name="cuatro" type="checkbox" id="cuatro" value="checkbox" />
cuatro<br />
<input type="button" name="Submit" value="todos" onclick="marcar(1,this.form)" />
<input type="button" name="Submit2" value="ninguno" onclick="marcar(0,this.form)" />
</form>
</body>
</html>
Espero sea de ayuda, Suerte.:)
 

HackerXtrmo

Bovino de alcurnia
#3
Gracias!!!

Pues eso se hace con el famoso checkbox "Selccionar Todos", y claro, eso se hace con JavaSript, aqui tengo algo que puedes tomar como ejemplo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function marcar(p,f){
for(ii=0;n=f.elements[ii];ii++){
if(n.type=="checkbox")n.checked=p
}
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<input name="uno" type="checkbox" id="uno" value="checkbox" />
uno<br />
<input name="dos" type="checkbox" id="dos" value="checkbox" />
dos<br />
<input name="tres" type="checkbox" id="tres" value="checkbox" />
tres<br />
<input name="cuatro" type="checkbox" id="cuatro" value="checkbox" />
cuatro<br />
<input type="button" name="Submit" value="todos" onclick="marcar(1,this.form)" />
<input type="button" name="Submit2" value="ninguno" onclick="marcar(0,this.form)" />
</form>
</body>
</html>
Espero sea de ayuda, Suerte.:)
Muchas gracias por responderme amigo luego luego se nota qe traes todo el conocimiento:metal:

MUCHAS MUCHAS gracias ya nadamas tengo que buscar el evento del checkbox que creo que no es onclick como lo tenia sino que es click para ponerle la llamada a ese metodo
 
Arriba