Foros del Web » Programando para Internet » PHP »

Pasar array bidimensional por POST

Estas en el tema de Pasar array bidimensional por POST en el foro de PHP en Foros del Web. Hola a todos: No consigo pasar un array bidimensional por POST. ¿alguna sugerencia? Muchas gracias a todos. Un saludo....
  #1 (permalink)  
Antiguo 31/10/2006, 13:21
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Pasar array bidimensional por POST

Hola a todos:

No consigo pasar un array bidimensional por POST.

¿alguna sugerencia?

Muchas gracias a todos.

Un saludo.
  #2 (permalink)  
Antiguo 31/10/2006, 13:29
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Y como estas haciendo para pasarlo?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 31/10/2006, 13:36
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Para pasar un array normal paso una cadena separada de comas y listo.
Pero el bidimensional no sé como hacerlo.
  #4 (permalink)  
Antiguo 31/10/2006, 13:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Serializa el array como se expone en esta FAQ:

http://www.forosdelweb.com/showthrea...072#post262072

(O usa sesiones si puedes: www.php.net/session y no tendras que serializar nada ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 31/10/2006, 13:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Usa serialize() y unserialize() entonces.


EDIt: Cluster siempre un paso adelante =P
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 01/11/2006, 02:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchas gracias Cluster!!

Logré hacerlo, serialicé el array como muestra la FAQ, sólo tube que modificar un poco para mostrar el array bidimensional.

Foreach ($array as $indice =>$valor) {
Foreach ($array[$indice] as $subIndice=> $subValor) {
echo "[$indice][$subIndice]=$subValor<br>";
}
}

Muchas Gracias!

Saludos
  #7 (permalink)  
Antiguo 01/11/2006, 10:01
 
Fecha de Ingreso: marzo-2006
Mensajes: 12
Antigüedad: 18 años, 1 mes
Puntos: 0
es mas conveniente que metas en una variable y luego hagas un explode... porque devalde vas a crearte variables de sesion que despues vas a tener que comprobar de borrar siempre despues de usar...

$bar='';
for(....){
$variable=$bar.valor;
$bar='|';
}
echo $variable;

es mas o menos la idea de como generar la variable... y del otro lado haces

$exp=explode('|',$_post[variable]);

o

$exp=explode('|',$_get[variable]);
  #8 (permalink)  
Antiguo 01/11/2006, 10:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por norman182 Ver Mensaje
es mas conveniente que metas en una variable y luego hagas un explode... porque devalde vas a crearte variables de sesion que despues vas a tener que comprobar de borrar siempre despues de usar...

$bar='';
for(....){
$variable=$bar.valor;
$bar='|';
}
echo $variable;

es mas o menos la idea de como generar la variable... y del otro lado haces

$exp=explode('|',$_post[variable]);

o

$exp=explode('|',$_get[variable]);
La solución que optó nuestro amigo fué la de "serializar" .. pero con las funciones nativas de PHP que te ofrece este lenguaje: serialize() y unserialize() ..

Tu propuesta también es una "serialización" .. pero de esa forma se complica cuando (como es el caso) tienes que propagar arrays bidimensionales (o de más dimensiones).

El tema de usar una sesión .. es -tan simple- como:

script_1.php
Código PHP:
<?
session_start
();
$_SESSION['tu_array_de_cualquier_dimension']=$array;
// siendo $array tu array de cualquier dimensión.
// passas a tu 2° scritp como gustes: link, redirección por header() .. etc ...
?>
script_2.php
Código PHP:
<?
session_start
();
$array=$_SESSION['tu_array_de_cualquier_dimension'];
// Y si no quieres la variable de sesión creada:
unset($_SESSION['tu_array_de_cualquier_dimension']);
// Y si realmente no usas sesiones en tu aplicación para nada .. 
// Destruyes tu sesión.
session_destroy();

// en $array vuelves a tener en este punto tu array tal cual .. sin más proceso que aplicar.
?>
Hoy por hoy .. lo normal es que se use sesiones en tus aplicacioens .. así que no está de más usar ese "recurso" que seguro que se está usando para otros fines para este tema.

Por otro lado .. el hecho de propagar datos por el URL, los datos que puedes propagar NO SON ilimitados, .. así que hay que tener cuidado con eso también. En una sesión los datos a propagar por lo menos tienen mucho mayor margen vs a URL.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 01/11/2006, 10:54
 
Fecha de Ingreso: marzo-2006
Mensajes: 12
Antigüedad: 18 años, 1 mes
Puntos: 0
las funciones de serialize y unserialize no las conocia... bueno, pero tenes que acordarte de siempre descargar los datos de la sesion despues de usarlos, para evitar saturar al server!...

yo ya he usado los dos metodos, y el mas comodo es el de las sesiones, en todo caso es mejor crearse un script que verifique que los datos se borren despues de ser usados...

yo generalmente hago asi...

session.php
Código PHP:
<?
session_start
();
if(
$_SESSION[pagina]!=$pagina){
    
$_SESSION[datos]=null;
}
?>
index.php
Código PHP:
<?
$pagina
='index';
include(
'session.php');
$_SESSION[pagina]=$pagina;
$_SESSION[datos]='Le metes los datos que quers, si queres matrices, etc';
?>
entonces en cada pagina te va a ir borrando los registros... o la otra opcion puede ser en ves de pagina le seteas true o false envez de la pagina, entonces si es false limpia los registros, y si es true los deja...
  #10 (permalink)  
Antiguo 01/11/2006, 12:11
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
En donde usas "$_SESSION[pagina] y $_SESSION[datos]", pagina y datos son constantes? si es así aclaralo así no se marea nadie...

Con el tema original, es mejor como se dijo usar serialize y unserialize, o bien sessiones...pasarla usando un joinn no tiene mucho sentido.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 01/11/2006, 12:49
 
Fecha de Ingreso: marzo-2006
Mensajes: 12
Antigüedad: 18 años, 1 mes
Puntos: 0
son dos paginas, simplemente los separe para dar un ejemplo, porque si vas a usar en multiples paginas haces
Código PHP:
<? include('session.php'); ?>
y $_SESSION[pagina] uso para saber de que pagina son los datos, en el caso de que si queres usar determinados datos en una pagina determinada solo se use en esa, y si pasas a otra (en donde siempre definimos la variable $pagina) se borran los registros...

pero como dijeron anteriormente el serialize es limitado... mas incomodo... de todas formas tenes que ver que queres pasar de pagina en pagina...

nose si me llego a explicar...
  #12 (permalink)  
Antiguo 01/11/2006, 13:00
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
No, mi pregunta fue puntal. pagina y datos son constantes?

PD edit: donde, serialize y unserialize, te parecen limitados e incomodos?
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 01/11/2006 a las 13:25
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:13.