Pasar un arreglo de un formulario a otro

Hola david:
Mi problema es el siguiente resulta que tengo tres formularios; en el primero lleno unos campos, en el segunda válido si se lleno primero primer formulario y entonces puedo insertar en el segundo, y en el tercer formulario debo guardar en la base de datos os datos que se introdujeron en el primer formulario y en segundo. Los dos primeros formularios los manejo mediante arreglos. Investigando encontré que se podía pasar arreglos a los formularios mediante serializacion o por sesiones. Estoy probando pasarlos por serializacion y
el código que manejo es el siguiente:
<?php // este es para enviarlos en el primer formulario
function array_envia($array) {
$tmp = serialize($array);
$tmp = urlencode($tmp);
return $tmp;
}
$array=array('$nombres','$apellidos','$sexo', '$edad' );
$array=array_envia($array);
?>
<form action="recibir_array.php" method="POST">
<input name="array" type="hidden" value="$array">
<input name="enviar" type="submit" value=" Enviar ">
</form>
<? // este es para recibirlos en el segundo formulario
function array_recibe($url_array) {
$tmp = stripslashes($url_array);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);
return $tmp;
}
$array=tiny_mce_markerPOST['array'];
$array=array_recibe($array);
foreach ($array as $indice => $valor){ // ESTA ES LA LINEA 54
echo $indice." = ".$valor."<br>";
}
?>
pero me aparece el siguiente error en el segundo formulario
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\doc\accs.php on line 54
Agradecería mucho tu ayuda, o alguna recomendación por favor

1 respuesta

1
Respuesta de
Hola,
lo que te recomiendo es que te olvides de la serialización.
El paso de valores por sesión es mucho más sencillo e intuitivo:
Sólo pon al principio de cada página:
session_start();
y después asigna variables a la matriz de sesión:
$_SESSION["tuvariable"] = "Tu valor";
$_SESSION["otra"] = "otro valor";
$_SESSION["tuarray"][2] = "un valor mas";
que podrán ser leídas y escritas en cualquier otra página:
echo $_SESSION["tuvariable];
echo $_SESSION["tuarray"][2];
Saludos.
David Cortés Braña
Hola:
Pues ya he resuelto ese problema con sesiones como me recomendaste pero ahora tengo otro problema, resulta que necesito que una tabla contenga el mismo numero de registro de las variables que paso por medio de sesiones y que es un arreglo. Por ejemplo si pasan 3 variables que la tabla solo aparezca con tres filas para llenar en base a las tres variables anteriores, y si pasa con 6 pues que solo aparezcan 6 filas en la tabla, así sucesivamente.
No se si esto sea posible y gracias de antemano.
Hola,
sólo tienes que contar las variables que llegan. La función count() cuenta el número de valores en una matriz:
echo count($_SESSION);
echo count($_SESSION["tuarray"]);
Saludos.
David Cortés Braña
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema PHP o hacer tu propia pregunta: