Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/12/2008, 06:20
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Math.random con minimo y maximo, sin repeticionesM

Ohm, vaya, no me acordaba que getElementsByName() no devuelve un Array normal...

A ver, prueba así:
Código javascript:
Ver original
  1. function mezclar(x) {
  2.     var i = x.length;
  3.     while (i>0) {
  4.         k = Math.floor(Math.random()*i);
  5.         i--;
  6.         var temp = x[i];
  7.         x[i] = x[k];
  8.         x[k] = temp;
  9.     }
  10.     return x;
  11. }
  12. function anadir_aleatorias(){
  13.     chk3 = document.getElementsByName('check');
  14.     canciones = new Array();
  15.     for(i=0;i<chk3.length;i++){ canciones.push(chk3[i].value); }
  16.     canciones = mezclar(canciones);
  17.     canciones = canciones.join("|");
  18. alert(canciones); // Este alert es para que veas el orden. lo puedes quitar
  19.     window.open("agregar_cancion.php?canciones="+canciones, "reproductor");
  20. }


En tu codigo hay algo un poco raro, que es eso de poner el checked a true y luego comprobar si es true. Lo he quitado. Además, tal como lo tenías se estaban abriendo múltiples ventanas.