P: ¿Como puedo hacer una interfase con la que pueda llenar una lista en base a los elementos de otra lista?
R: [ver ejemplo] Código PHP:
<html>
<head>
<script language="javascript">
var aList = new Array("uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez");
var aIzqu = new Array(true, true, true, true, true, true, true, true, true, true);
var i, j, nIzq, nDer, maxIzq, maxDer;
nIzq = 0;
nDer = 0;
maxIzq = aList.length;
maxDer = 0;
function agregaTodos(){
for (i = 0; i < aList.length; i++)
aIzqu[i] = false;
maxIzq = 0;
maxDer = aList.length;
nIzq = 0;
formulario();
}
function indiceIzqReal(nInd){
var bFin = false;
var i = 0;
var j = -1;
for (;!bFin;){
if (aIzqu[i]) j++;
bFin = ((j == nInd) || (i >= aList.length));
if (!bFin) i++;
}
return i;
}
function indiceDerReal(nInd){
var bFin = false;
var i = 0;
var j = -1;
for (;!bFin;){
if (!aIzqu[i]) j++;
bFin = ((j == nInd) || (i >= aList.length));
if (!bFin) i++;
}
return i;
}
function agregaActual(){
var bFin = false;
var nInd = indiceIzqReal(nIzq);
aIzqu[nInd] = false;
if (nIzq == maxIzq - 1) nIzq--;
maxIzq--;
maxDer++;
formulario();
}
function eliminaActual(){
var bFin = false;
var nInd = indiceDerReal(nDer);
aIzqu[nInd] = true;
if (nDer == maxDer - 1) nDer--;
maxIzq++;
maxDer--;
formulario();
}
function eliminaTodos(){
for (i = 0; i < aList.length; i++)
aIzqu[i] = true;
maxIzq = aList.length;
maxDer = 0;
nDer = 0;
formulario();
}
function primeroIzq(){
nIzq = 0;
formulario();
}
function primeroDer(){
nDer = 0;
formulario();
}
function siguienteIzq(){
if (nIzq < maxIzq - 1)
nIzq++;
formulario();
}
function siguienteDer(){
if (nDer < maxDer - 1)
nDer++;
formulario();
}
function anteriorIzq(){
if (nIzq > 0)
nIzq--;
formulario();
}
function anteriorDer(){
if (nDer > 0)
nDer--;
formulario();
}
function ultimoIzq(){
nIzq = maxIzq - 1;
formulario();
}
function ultimoDer(){
nDer = maxDer - 1;
formulario();
}
function formulario(){
with (window.pantalla.document){
open();
writeln("<html>");
writeln(" <head>");
writeln(" </head>");
writeln(" <body>");
writeln(" <form name='formulario'>");
writeln(" <table border='0'>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <textarea name='opciones' rows='10'>");
for (i = 0, j = 0; i < aList.length; i++){
if (aIzqu[i]){
if (j == nIzq)
writeln('>>' + aList[i] + '<<')
else
writeln(aList[i]);
j++;
}
}
writeln(" </textarea>");
writeln(" </td>");
writeln(" <td>");
writeln(" <table border='0'>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value='>>' onclick='parent.agregaTodos()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value='> ' onclick='parent.agregaActual()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value=' <' onclick='parent.eliminaActual()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value='<<' onclick='parent.eliminaTodos()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" </table>");
writeln(" </td>");
writeln(" <td>");
writeln(" <textarea name='seleccionados' rows='10'>");
for (i = 0, j = 0; i < aList.length; i++){
if (!aIzqu[i]){
if (j == nDer)
writeln('>>' + aList[i] + '<<')
else
writeln(aList[i]);
j++;
}
}
writeln(" </textarea>");
writeln(" </td>");
writeln(" </tr>");
writeln(" <tr>");
writeln(" </tr>");
writeln(" <td>");
writeln(" <table border='0'>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value='Pri' onclick='parent.primeroIzq()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Ant' onclick='parent.anteriorIzq()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Sig' onclick='parent.siguienteIzq()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Ult' onclick='parent.ultimoIzq()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" </table>");
writeln(" </td>");
writeln(" <td>");
writeln(" </td>");
writeln(" <td>");
writeln(" <table border='0'>");
writeln(" <tr>");
writeln(" <td>");
writeln(" <input type='button' value='Pri' onclick='parent.primeroDer()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Ant' onclick='parent.anteriorDer()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Sig' onclick='parent.siguienteDer()'>");
writeln(" </td>");
writeln(" <td>");
writeln(" <input type='button' value='Ult' onclick='parent.ultimoDer()'>");
writeln(" </td>");
writeln(" </tr>");
writeln(" </table>");
writeln(" </td>");
writeln(" </table>");
writeln(" </form>");
writeln("</body>");
writeln("</html>");
close();
}
}
</script>
</head>
<frameset rows="100%,*" frameborder="no" border="0" framespacing="0" onload="javascript:formulario()">
<frame name="pantalla" src="pruDummy.htm" frameborder="no" border="0">
<frame name="dummy" src="pruDummy.htm">
</frameset>
</html>