Foros del Web » Programando para Internet » Javascript »

Pasar items de una lista (de una base de datos) a otra (se guarde en una tabla)

Estas en el tema de Pasar items de una lista (de una base de datos) a otra (se guarde en una tabla) en el foro de Javascript en Foros del Web. Hola!, ya he buscado en este foro y en otros mas ayuda para el problema que tengo y aunque me he topado con problemas similares ...
  #1 (permalink)  
Antiguo 06/11/2009, 20:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
Pasar items de una lista (de una base de datos) a otra (se guarde en una tabla)

Hola!, ya he buscado en este foro y en otros mas ayuda para el problema que tengo y aunque me he topado con problemas similares al mio no he encontrado una solucion.
Lo que yo quiero es que, a partir de una lista1 "cargada desde una base de datos" pasar algunos de sus elementos a otra lista2 (estos elementos deberan guardarse en otra tabla de la base de datos), encontre un ejemplo en el que se intercambian perfectamente los elementos entre las listas pero estos elementos se dan manualmente no a partir de una Base de datos.
El codigo original que encontre es el siguiente (fue mostrado por JavierB):

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
>
<
html>
<
head>
<
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<
title>Pasar elementos de una lista a otra</title>
<
style type="text/css">
select {width:80px}
</
style>
<
script type="text/javascript">
<!--
function 
pasar() {
    
obj=document.getElementById('sel1');
    if (
obj.selectedIndex==-1) return;
  for (
i=0opt=obj.options[i]; i++)
    if (
opt.selected) {
        
valor=opt.value// almacenar value
        
txt=obj.options[i].text// almacenar el texto
        
obj.options[i]=null// borrar el item si está seleccionado
        
obj2=document.getElementById('sel2');
      if (
obj2.options[0].value=='-'// si solo está la opción inicial borrarla
        
obj2.options[0]=null;
        
opc = new Option(txt,valor);
        eval(
obj2.options[obj2.options.length]=opc);
  }    
}
-->
</script>
</head>

<body>
<p>
<label for="sel1">Origen:</label>
<select id="sel1" size="5" multiple="multiple">
<option value="1">Uno</option>
<option value="2">Dos</option>
<option value="3">Tres</option>
<option value="4">Cuatro</option>
<option value="5">Cinco</option>
</select>
<label for="sel2"> Destino:</label>
<select name="select" size="5" id="sel2">
  <option value='-'>-</option>
</select>
</p>
<input type="button" value="Pasar" onclick="pasar()" />
</body>
</html> 
y lo que yo hice fue reemplazar la parte donde se dan los valores de la tabla por los valores de la base de datos, de la siguiente manera:
Original:
Código PHP:
<label for="sel1">Origen:</label>
<
select id="sel1" size="5" multiple="multiple">
<
option value="1">Uno</option>
<
option value="2">Dos</option>
<
option value="3">Tres</option>
<
option value="4">Cuatro</option>
<
option value="5">Cinco</option>
</
select>
<
label for="sel2"Destino:</label>
<
select name="select" size="5" id="sel2">
  <
option value='-'>-</option>
</
select>
</
p>
<
input type="button" value="Pasar" onclick="pasar()" /> 
el reemplazo:
Código PHP:
<select id="sell" size="10" multiple="multiple">
     <?php
do {  
?>
   <option value="<?php echo $row_Recordset1['nombre']?>" ><?php echo $row_Recordset1['nombre']?></option>
        <?php
} while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
  
$rows mysql_num_rows($Recordset1);
  if(
$rows 0) {
      
mysql_data_seek($Recordset10);
      
$row_Recordset1 mysql_fetch_assoc($Recordset1);
  }
?>
</select>
</p>
 <input type="button" value="Pasar" onClick="pasar()"  />
     <select name="sel2" size="10" id="sel2">
       <option value='-'>-</option>
     </select>
y el javascript lo deje igual:
Código:
<script type="text/javascript">
<!--
function pasar() {
	obj=document.getElementById('sel1');
	if (obj.selectedIndex==-1) return;
  for (i=0; opt=obj.options[i]; i++)
    if (opt.selected) {
    	valor=opt.value; // almacenar value
    	txt=obj.options[i].text; // almacenar el texto
    	obj.options[i]=null; // borrar el item si está seleccionado
    	obj2=document.getElementById('sel2');
      if (obj2.options[0].value=='-') // si solo está la opción inicial borrarla
        obj2.options[0]=null;
    	opc = new Option(txt,valor);
    	eval(obj2.options[obj2.options.length]=opc);
  }	
}
-->
</script>
Obviamente hago la conexion a la base de datos, la primera lista si me muestra los elementos desde la base de datos pero cuando selecciono uno y le doy en "pasar" no hace nada, yo creo que me falta algo en el javascript pero ya he modificado varias veces usando ejemplos de la red y con lo que yo creo que podria necesitar pero no logro que funcione.
Ojala alguien pueda y quiera ayudarme.
Muchas gracias .

Última edición por Bindi12; 07/11/2009 a las 21:19
  #2 (permalink)  
Antiguo 06/11/2009, 23:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Pasar items de una lista (de una base de datos) a otra (se guarde en una t

la verdad, no se en que pueda estar fallando. comprobe el ejemplo de javierB y me funciona bien. verifica que dice la consola de errores tanto antes como luego de presionar el boton.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 07/11/2009, 06:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Pasar items de una lista (de una base de datos) a otra (se guarde en una t

Hola

Aquí tienes el problema obj2=document.getElementById('sel2'); y ahora fijate en la id de tu segundo select

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 07/11/2009, 21:23
 
Fecha de Ingreso: septiembre-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Pasar items de una lista (de una base de datos) a otra (se guarde en una t

Les agradezco su ayuda, ya se resolvio el problema efectivamente tenia un error con con el id pero del primer select, me siento frustrada porque solo fue por una palabra y perdi tanto tiempo intentando solucionarlo pero bueno asi es cuando no se pone el suficiente cuidado al programar, gracias a los dos.
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 18:45.