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=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>
</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>
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()" />
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($Recordset1, 0);
$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>
Código:
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.<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>
Ojala alguien pueda y quiera ayudarme.
Muchas gracias .