Intercambio entre Listas (Select) y leerlas en PHP

Written by LocoDiego on Junio 3, 2008 – 9:24 pm - 5,648 lecturas

Hace poco un amigo me pidió que lo ayude en una funcionalidad en un sistema.
En una lista cargar X ordenes y el usuario debe pasar a otra lista las que va a considerar para darle algun tratamiento.
Bueno la primera parte es sencilla, una lista en HTML no es otra cosa que un campo SELECT (si el popular combo) con un cierto tamaño, incluso si se desea que acepte selecciones múltiples es cosa de definir un parámetro adicional:

Así es un combo:
<select name="miCombo" id="miCombo">
<option value="op1?>Opción 1</option>
</select>

Asi es una lista:
<select name="miLista" id="miLista" size="15">
<option value="op1">Opción 1</option>
</select>

Asi es una lista de selección múltiple:

<select name="miLista" id="miLista" size="15" multiple="multiple">

<option value=”op1″>Opción 1</option>

</select>

Por lo que la primera parte ya estaba resuelta.

Ahora, se requiere que de una lista 1 se pasen algunos resultados a una lista 2.

Es decir que el valor que se ha seleccionado en la lista 1, pase a la lista 2 en cierta posición y desaparezca este elemento de la lista 1.

Bueno, una pequeña búsqueda en Google, y encontré este código. El cual hacia el intercambio entre ambas listas a la perfección. Ya había resuelto el problema #2 en un ratito.

Ahora el siguiente problema es leer la lista 2 e interpretar su contenido en otra página, hace un tiempo me paso un problema similar.

Bueno al momento que manda el formulario en PHP no lee nada.

Así que cree un nuevo campo (tipo “hidden” -oculto-) donde podré leer dicho contenido.

Para hacerlo antes de mandar mi formulario, cree esta función en Java Script.

<script language="JavaScript" type="text/javascript">
function deLista_Cadena(lista){
var lista= document.getElementById(lista);
var opcion = lista.options;
var longi = lista.length;
var cad = "";

if( longi < 1 ){
alert(”Debe seleccionar al menos un campo de la lista.”);
} else {
for (var i=0; i< longi; i++){
cad += opcion[i].text;
cad += ( i == longi-1 )?””:”,”;
}
return cad;
}
return null;
}
</script>
Su uso es:
document.NOMBRE_DEL_FORMULARIO.oculto.value = deLista_Cadena('miLista');

Al momento que lo interprete en otra página lo único que debo hacer es leer este campo oculto y splitearlo:
<?php
$Datos = split(",",$_POST["oculto"]);

echo $Datos[0];
?>

Espero que a alguien le pueda servir. :-D


Tags: , , , , , , , ,
Posted in Trabajo | No Comments »