Ayuda con PHP+JavaScript+Checkbox

bytevamp
10 de Agosto del 2005
Veamos tengo el sigiente codigo en javascript:

<script language="javascript"> function todos(form) { for (i = 0; i < form.check.length; i++) form.check[i].checked = true; form.desmarcatodos.checked = false; } function ninguno(form) { for (i = 0; i < form.check.length; i++) form.check[i].checked = false; form.marcatodos.checked = false; } </script>

en la misma pagina un poco mas abajo se abre un textbox para poner el tema y un textarea para poner el mail

abajo aparece una lista de todos los usuarios, con el siguiente codigo PHP para recoger los datos de los usuarios:

<?
//Sentencia SQL
$ssql = "SELECT * FROM clientes order by Apellido1";

//Ejecuto la sentencia
$result = mysql_query($ssql,$conn);

//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
if ($row!=0){
?>
<tr class="plaindesc" style="width:20">
<tr class="Tfilas2" style="width:20">
<?
if($row['Mail']=="" ){
?>
<td height="20" align="center" bgcolor="#FFFFFF" class="Tfilas2"> - </td>
<?
}else{
?>
<td height="20" align="center" bgcolor="#FFFFFF" class="Tfilas2"><input type="checkbox" name="check" value="<? echo $row ['Mail'];?>">
</td>
<?
};
?>
<td align="center" class="Tfilas2"><? echo $row['Nombre'];?> </td>
<td align="center" class="Tfilas2" ><? echo $row['Mail'];?></td>
<td align="center" class="Tfilas2">&nbsp;</td>
</tr>
<?
};
};


Algunos Usuarios tienen Mail y otros no. Despues coloco los checkboxes siguientes:

<td width="45%"><div align="left"><input type="checkbox" name="marcatodos" onClick="todos(this.form)">Marcar todos </div></td> <td width="55%"><div align="left"><input type="checkbox" name="desmarcatodos" onClick="ninguno(this.form)">Desmarcar todos</div></td>



Y en la pagina que recoge los datos pongo:

foreach($check as $dirEmail)
{
$destinatario.= $dirEmail.", ";

};



Pues bien el problema es el siguiente, tal como estan los chekboxes, me los selecciona y deselecciona todos, pero al llegar a la pagina que recoge los datos me da el error siguiente:

Warning: Invalid argument supplied for foreach() in c:InetpubwwwrootextranetadminenviarMail.php on line 12

que corresponde con el inicio del foreach.
Si a los checkboxes los llamo "check[]" en lugar de "check" entonces en la pagina receptora me los recoge, pero los checkboxes de marcar y desmarcar todos no van.


¿alguien podria ayudarme? lo agradeceria un monton este dichoso codigo me esta volviendo loco.

Gracias.

bytevamp
10 de Agosto del 2005
Buen gracias de todos modos a todos, ya he encontrado la solucion, solo habia que hacer una ligera modificacion en el JavaScript:

<script language="javascript">
function todos(form)
{
for (i = 0; i < form.elements.length; i++)
form.elements[i].checked = true;
form.desmarcatodos.checked = false;
}

function ninguno(form)
{
for (i = 0; i < form.elements.length; i++)
form.elements[i].checked = false;
form.marcatodos.checked = false;
}
</script>

Gracias.