HackerXtrmo
Bovino de alcurnia
- Desde
- 24 May 2007
- Mensajes
- 3.445
- Tema Autor
- #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".
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
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í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