Foros del Web » Programando para Internet » Javascript »

Problemas con select multiple

Estas en el tema de Problemas con select multiple en el foro de Javascript en Foros del Web. Hola a todos antes que nada, gracias a que revise varios POST pude mas o menos darme una idea de una aplicacion que tengo que ...
  #1 (permalink)  
Antiguo 27/06/2008, 16:35
Avatar de elmasca  
Fecha de Ingreso: enero-2004
Ubicación: Mexico
Mensajes: 108
Antigüedad: 20 años, 3 meses
Puntos: 0
Problemas con select multiple

Hola a todos antes que nada, gracias a que revise varios POST pude mas o menos darme una idea de una aplicacion que tengo que hacer con unos select multiple, entonces he hecho la aplicacion solo que me falla algo que espero ustedes puedan ayudarme.

Primero les comento de manera general que es lo que quiero hacer, bueno tenemos dos select, en uno se llena con datos extraidos de una base de datos, en el otro select solo aparece vacio. Bueno lo que quiero hacer es que cuando el usuario seleccione cualquiera de los elementos (uno o muchos) ya sea con SHIFT o CONTROL que se encuentran en el primer select, automaticamente el select vacio se llene con los elementos que se seleccionaron en el primer select.

He hecho la aplicacion y si lo hace pero cuando solo selecciono uno, cuando quiero seleccionar dos o mas me manda un error y no hace nada. Les pongo el codigo.

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo Normalizar</title>
</head>
<script language="javascript">

function cambia_datos(sel){
 cuenta = 0;
 datos = new Array();
 for (i = 0, total = sel.length; i < total; i ++)
  if (sel[i].selected) datos[cuenta++] = sel[i].value;
 
 for(j=0, cont = datos.length; j < cont; j++)
   {
    document.frmnormalizar.res_temas.options[j].text=datos[j];
   } 

}

</script>


<form name="frmnormalizar" action="" method="post">
<table border="0">
<tr>
 <td bgcolor="#dadada"></td>
 <td bgcolor="#F3F4F5"> 
Código PHP:
  <?php
   $sql
="SELECT DISTINCT Pais FROM paises ORDER BY Pais";
   
$res=mysql_query($sql,$link);
   
$cont 0;
   echo
"<select size='20' name='pais' font-family:Arial;\" multiple onchange='cambia_datos(this)'>";
   echo 
"<option value='$cont'></option>";
   if(
$row=mysql_fetch_array($res))
    do{
       if(
$row["Pais"]!="")
        echo 
"<option value='".$row["Pais"]."'>".$row["Pais"]."</option>";
        
       
$cont++;
      }while(
$row=mysql_fetch_array($res));

   echo 
"</select>";

   
mysql_free_result($res);

  
?>
Código HTML:
 </td>
</tr>
<tr>
 <td bgcolor="#dadada"></td>
 <td bgcolor="#F3F4F5">
  <select size="6" name="res_temas">
   <option value=''>...............Normalizar...............</option>
  </select>
  &nbsp;&nbsp;&nbsp;
 </td>
</tr>
</table>
</form>
<body>
</body>
</html> 
El error de javascript que aparece es este:

Linea: 17
Car: 5
Error: 'document.frmnormalizar.res_temas.options[...]' es nulo o no es objeto
Codigo: 0


Espero de verdad que alguien pueda ayudarme, porque creo yo que ya casi la tengo lista.

De ante mano muchas GRACIAS por su atencion y ayuda.
__________________
"El conocimiento se debe de compartir"

Última edición por elmasca; 30/06/2008 a las 09:51
  #2 (permalink)  
Antiguo 30/06/2008, 09:51
Avatar de elmasca  
Fecha de Ingreso: enero-2004
Ubicación: Mexico
Mensajes: 108
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Problemas con select multiple

En verdad si alguien puede ayudarme, crero que ya esta casi hecho, solo necesito saber cual es el error que debo arreglar para que funcione bien. GRACIAS
__________________
"El conocimiento se debe de compartir"
  #3 (permalink)  
Antiguo 01/07/2008, 03:22
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con select multiple

Prueba con esta función:

function cambia_datos(){
objCboOrigen = document.frmnormalizar.pais;
objCboDestino = document.frmnormalizar.res_temas;

for (var i=0; i<objCboOrigen.options.length; i++){
if(objCboOrigen.options[i].selected == true){
objCboDestino.add(new Option(objCboOrigen.options[i].text,objCboOrigen.options[i].value));
}
}
/*
for (var i=0; i<objCboOrigen.options.length; i++){
if (objCboOrigen.options[i].selected ){
objCboOrigen.remove(i);
i = i - 1 ;
}
}
*/
}
  #4 (permalink)  
Antiguo 25/08/2008, 12:12
Avatar de elmasca  
Fecha de Ingreso: enero-2004
Ubicación: Mexico
Mensajes: 108
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Problemas con select multiple

Excelente !!! Gracias lasopa90 el codigo que pusiste me ayudo mucho con esto.


De ante mano gracias a todos por su atencion !!!!
__________________
"El conocimiento se debe de compartir"
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 01:42.