Necesito dato útil con sesiones

Hola amigo, necesito ayuda para dominar el uso de sesiones, tal vez pueda ser útil para muchos que me tiendas una mano con este caso.
Hice un script (Seleccionar.php) que entrega el resultado de una consulta en porciones de 40 registros. Para ver cada porción o página, paso su numeración a través de la URL con autollamada a este mismo archivo.
Cada registro contiene un control checkbox, el que al ser seleccionado (checkeado) quiero capturar el valor de este elemento.
La idea es que cuando el usuario haya finalizado su selección de registros (en todas las páginas o porciones existentes), pulse un botón submit que abra el archivo "RecepcionaSeleccionados.php" el cual debe recepcionar TODOS los elementos seleccionados anteriormente.
¿Cómo lo hago? ¿Son útiles las Sesiones? ¿Sera mejor usar BD con una tabla auxiliar para registrar el ID Session y los checkbox seleccionados? No quiere resultar! No logro que al registrar variables (tipo arreglo) en la sesión, estas persistan en forma global en "RecepcionaSeleccionados.php" a pesar de encabezar con "session_start();" en este ultimo.
Tengo algo así como esto:
// :::Seleccionar.php:::
// PRESENTAR NRO DE PAGS
// $P es la variable que tiene el numero de pagina o porcion actual (a visualizar)
// $PAGS es la variable que tiene el numero total de porciones o páginas que existen al agrupar cada 40 el total de registros que entrega la consulta
FOR ($I=1;$I<=$PAGS;$I++) {
PRINT "<A HREF='Seleccionar.php?P=".$I."'>Pagina ".$I."</A>";
}
···
<FORM ACTION='RecepcionaSeleccionados.php' METHOD='POST'>
···
···
// Imaginemos que ya se realizo la consulta obteniendo su resultado en $resultA[], el cual se esta recorriendo con While...
// y esta es una de las columnas de cada registro
PRINT "<div align='center'><input type='checkbox' name='Psel[]' value='" . $resultA[1] . "'></div>";
···
</FORM>
Salu2 ;)
Espero ideas pronto, agradece AGTHEL
Respuesta
1
Incluye en el formulario un campo hidden con el nombre de la variable de sesión y su valor.
<FORM ACTION='RecepcionaSeleccionados.php' METHOD='POST'>
···
···
// Imaginemos que ya se realizo la consulta obteniendo su resultado en $resultA[], el cual se esta recorriendo con While...
// Y esta es una de las columnas de cada registro
PRINT "<div align='center'><input type='checkbox' name='Psel[]' value='" . $resultA[1] . "'></div>";
···
<input type="hidden" name="nom_sesion" value="<? echo $nom_sesion;?>">
</FORM>
Me parece bien guardar en una tabla auxiliar el id de la sesión junto con los checkbox seleccionados (también tendrás que eliminarlos de la tabla al deseccionarlos).
Hola!
Muchas gracias por tu respuesta. Disculpa que me haya tardado en dar señales de vida, así son las vacaciones ;) Por lo mismo, estoy retomando el problema, y utilizar tu sugerencia ayudara en gran parte, pero quizás el problema principal esta en poder reconocer la propiedad checked de un control chekclist a través de PHP (resulta fácil con Javascript, pero hace falta capturar su valor en variables en PHP) sin ocasionar la recarga del mismo formulario por ejemplo con un botón Submit. ¿Es eso posible?
De antemano gracias.
Saludos
Agthel

1 respuesta más de otro experto

Respuesta
1
Es muy difícil enterarse de como funciona la aplicación pero si lo que necesitas es mandar un array con todos los datos lo más interesante es que te ordenes los valores que quieras mandar en un array multidimensional y hacer lo siguiente:
En un campo de tipo hidden te gurdas la variable que contenga el array.
Una vez cargado el array con todos los valores haces
<? $array = serialize($array);
$array = urlencode($array); ?>
<input type="Hidden" name="array" value="<? echo $array; ?>">
Cuando envíes el formulario recupera la variable array y aplícale para volver a convertirlo en un array lo siguiente:
<? $array = urldecode($array);
$array = unserialize($array);?>
Y así podrás tener controlado el array.
Espero que te sirva y si no es lo que me pedías intenta volver a mandarme lo que quieres que te haga la aplicación de una manera más concreta.
Hola!
Muchas gracias por tu respuesta. Disculpa que me haya tardado en dar señales de vida, así son las vacaciones ;) Por lo mismo, estoy retomando el problema, y utilizar la función serialize ayuda en gran parte, pero quizás el problema principal esta en poder reconocer la propiedad checked de un control chekclist a través de PHP (resulta fácil con Javascript, pero hace falta capturar su valor en variables en PHP) sin ocasionar la recarga del mismo formulario por ejemplo con un botón Submit. ¿Es eso posible?
De antemano gracias.
Saludos
Agthel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas