Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2008, 16:35
Avatar de elmasca
elmasca
 
Fecha de Ingreso: enero-2004
Ubicación: Mexico
Mensajes: 108
Antigüedad: 20 años, 4 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