Hola a todos. Me he bajado de este foro un script para seleccionar un máximo de 3 checkbox, pero sabiendo el número de checkbox totales. He intentado modificarlo para que este numero lo coga de una base de datos.
Os paso el código:
function countChoices(obj) {
max = 3; // numero maximo de elementos seleccionados
var elementos = <? echo $nregistros; ?>; //Numero total de productos
//------
//Este ejemplo está hecho para un total de 4 productos, así que habría que modificarlo
//dependiendo del total de productos
var contador = new Array();
for (i=0;i<elementos;i++){
contador[i] = obj.form.imagen+i+.checked;
count += (contador[i] ? 1 : 0);
}
/* ORIGINAL
a = obj.form.imagen1.checked; // checkboxes
b = obj.form.imagen2.checked;
c = obj.form.imagen3.checked;
d = obj.form.imagen4.checked;
count = (a ? 1 : 0) + (b ? 1 : 0) + (c ? 1 : 0) + (d ? 1 : 0);*/
//-------
if (count > max) {
alert("Atencion! Solo puede seleccionar " + max + "! \Quite una de ellas si quiere seleccionar otra." );
obj.checked = false;
}
}
Lo que está en rojo es lo original, ylo azul el array que he intentado utilizar.
Luego, en el form lo hago de la siguiente forma:
<input type="checkbox" value="$id_obtenido" name="imagen$id_obtenido" onClick="countChoices(this)">
Inicialmente tendría una forma asi:
<input type="checkbox" value="1" name="imagen1" onClick="countChoices(this)"> ...
¿alguien me puede ayudar¿
Un saludo y gracias de antemano.