Código PHP:
<html>
<head>
<script language="javascript">
var aList = new Array("uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez");
var aListValue = new Array("a", "b", "c", "d", "f", "g", "h", "i", "j", "k");
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 agregaActual(inde){
//alert(inde);
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 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 cambiarIndIzq(inde){
nIzq = inde;
}
function cambiarIndDer(inde){
nDer = inde;
}
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(" <select name='opciones' size='10' onChange='parent.cambiarIndIzq(this.selectedIndex)'>");
for (i = 0; i < aList.length; i++){
if (aIzqu[i]){
writeln('<option value='+ aList[i] +'>' + aList[i] + '</option>')
}
}
writeln(" </select>");
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(" <select name='seleccionados' size=10 onChange='parent.cambiarIndDer(this.selectedIndex)'>");
for (i = 0; i < aList.length; i++){
if (!aIzqu[i]){
writeln('<option value='+ aList[i] +'>' + aList[i] + '</option>')
}
}
writeln(" </select>");
writeln(" </td>");
writeln(" </tr>");
writeln(" </table>");
writeln(" </form>");
writeln("</body>");
writeln("</html>");
close();
}
}
</script>
</head>
<frameset rows="50%,*" 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><noframes></noframes>
</html>
</html>