Foros del Web » Programando para Internet » Javascript »

[Novato]Problema con extraño comportamiento de un bucle con un slect multiple

Estas en el tema de [Novato]Problema con extraño comportamiento de un bucle con un slect multiple en el foro de Javascript en Foros del Web. Hola a todos tengo esta función: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function obtenerdest ( ) {               ...
  #1 (permalink)  
Antiguo 13/05/2012, 07:28
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
[Novato]Problema con extraño comportamiento de un bucle con un slect multiple

Hola a todos tengo esta función:

Código Javascript:
Ver original
  1. function obtenerdest(){
  2.                 var miIFrame = document.getElementById("usuarios");
  3.                 selected = new Array();
  4.                 for (var i = 0; i < miIFrame.contentWindow.document.getElementById("usr").options.length; i++)
  5.                 if (miIFrame.contentWindow.document.getElementById("usr").options[i].selected)
  6.                 miIFrame.contentWindow.document.getElementById("usr").options[i].value;
  7.                
  8.             }

Obtiene los datos de un select multiple que tengo en un iframe, luego los introduce en un bucle y recorre todos los datos.
Bien, pues cuando hago esto:

Código Javascript:
Ver original
  1. function obtenerdest(){
  2.                 var miIFrame = document.getElementById("usuarios");
  3.                 selected = new Array();
  4.                 for (var i = 0; i < miIFrame.contentWindow.document.getElementById("usr").options.length; i++)
  5.                 if (miIFrame.contentWindow.document.getElementById("usr").options[i].selected)
  6.                 alert(miIFrame.contentWindow.document.getElementById("usr").options[i].value);
  7.                
  8.             }

Me salen correctamente todas las ventanas alert una detras de otra con las opciones que he sleccionado en el combobox multiple.
Pero cuando quiero hacer esto:

Código Javascript:
Ver original
  1. function obtenerdest(){
  2.                 var miIFrame = document.getElementById("usuarios");
  3.                 selected = new Array();
  4.                 for (var i = 0; i < miIFrame.contentWindow.document.getElementById("usr").options.length; i++)
  5.                 if (miIFrame.contentWindow.document.getElementById("usr").options[i].selected)
  6.                 document.write(miIFrame.contentWindow.document.getElementById("usr").options[i].value);
  7.                
  8.             }

Únicamente imprime el primer dato que he seleccionado... ¿Por qué sucede esto?

Por otro lado me gustaría que los datos obtenidos en este bucle pasarlos a PHP. ¿Cómo más o menos se pordría hacer? Me imagino que se podría hacer con
Código Javascript:
Ver original
  1. array.join('-');
Para pasarlo a una variable de PHP en forma de cadena de texto. ¿Ideas?

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 13/05/2012, 08:07
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: [Novato]Problema con extraño comportamiento de un bucle con un slect multi

el uso de document.write está altamente desaconsejado, ya que sobrescribe el html. en su lugar tienes el método getElementById().

por otro lado hablas de asignar a una variable php la matriz. esto es imposible, por razones obvias. cuando se ejecuta javascript ya ha finalizado el momento en el que el servidor ha de trabajar. dicho de otra manera. si un archivo tiene código php y javascript o html, primero se ejecuta en el servidor el php y luego en el cliente el javascript, html o css

para crear una matriz, usa los métodos splice(), push() o unshift()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: bucle, múltiple, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.