Problema con ckeckbox como arreglo PHP

simonpp
21 de Diciembre del 2005
El problema que tengo es que los checkbox para enviarlos a un PHP deben ser enviados como arreglos, o sea del tipo variable[].

El caso es que cuando quiero validarlo en javascript de la forma:

for ( var i=0,n=form.variable.length; i<n; i++ ) {
}

ó

for ( var i=0,n=form.variable[].length; i<n; i++ ) {
}

No me lo reconoce... alguna sugerencia y ayuda?

Gracias.

ralequi
21 de Diciembre del 2005
nose mucho de javascript, pero dreamweaber puede jenerar conprobaciones de formularios, como supongo que no lo tienes te he hecho un ejemplo espero que te allude:

<html>
<head>
<title>Probando java 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.n'; }
} if (errors) alert('The following error(s) occurred:n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body>
<div align="center">
<form name="form1" method="post" action="">
<p>
<input name="a" type="text" id="a" value="solo admite un numero">
</p>
<p>
<input name="b" type="text" id="b" value="solo admite un EMAIL">
</p>
<p>
<input name="d" type="text" id="d" value="solo admite un numero del 1 al 7" size="35">
</p>
<p>
<input name="c" type="text" id="c" value="tiene que tener algo">
</p>
<p>
<input name="textfield" type="text" value="no hace falta rellenarlo">
</p>
<p>
<input name="Submit" type="submit" onClick="MM_validateForm('a','','RisNum','b','','RisEmail','d','','RinRange1:10','c','','R');return document.MM_returnValue" value="Comprobar">
</p>
</form>
</div>
</body>
</html>

salu2

simon
21 de Diciembre del 2005
Gracias por la respuesta, pero no es lo que busco :(

me faltó un detalle en el html va asi:

<input type="checkbox" name="variable[]" value="1">
<input type="checkbox" name="variable[]" value="2">
....