Hola,
Es con JavaScript y con el DOM (Document Object Modal) con quien tienes que "pegarte", no con PHP. He preparado algo de código, pero, advierto de algunos problemas. Primero, no sé porqué, exactamente, no puedo mover de un golpe todos los elementos seleccionados en la primera lista... hay algo que se me escapa.
Y, en segundo lugar, parece que habría que diferenciar entre Internet Explorer y otros navegadores a la hora de usar el método "add" del objeto "SELECT". Echa un vistazo a la documentación:
HTML DOM Select Object.
En fin, creo que es cuestión de le entres al asunto a ver, pero, recuerda que hablamos de JavaScript y no de PHP. Lo siguente es código HTML, CSS y JavaScript, aunque esté entre "etiquetas PHP" para resaltar el código mejor.
Código PHP:
<html>
<head>
<style type="text/css">
select {
width: 200px;
height: 200px;
}
</style>
<script type="text/javascript">
function AddToSecondList(){
var fl = document.getElementById('firstlist');
var sl = document.getElementById('secondlist');
for (i = 0; i < fl.options.length; i++){
if(fl.options[i].selected){
sl.add(fl.options[i],null);
}
}
return true;
}
function DeleteSecondListItem(){
var fl = document.getElementById('firstlist');
var sl = document.getElementById('secondlist');
for (i = 0; i < sl.options.length; i++){
if(sl.options[i].selected){
fl.add(sl.options[i],null);
// O...
// sl.remove(sl.options[i]);
}
}
return true;
}
</script>
</head>
<body>
<form action="none">
<div>
<select id="firstlist" multiple="multiple">
<option>Item 1</option>
<option>Item 2</option>
<option>Item 3</option>
<option>Item 4</option>
</select>
<select id="secondlist" multiple="multiple">
</select>
</div>
<div>
<input type="button" value="Añadir a la segunda lista"
onclick="AddToSecondList();" />
<input type="button" value="Quitar item de la segunda lista"
onclick="DeleteSecondListItem();" />
</div>
</form>
</body>
</html>