Foros del Web » Programando para Internet » PHP »

¿Puedo mandar arrays multidimensionales por URL?

Estas en el tema de ¿Puedo mandar arrays multidimensionales por URL? en el foro de PHP en Foros del Web. Hola a todos: Soy nuevo en estos foros y empiezo fuertem con una duda que llevo 2 días sin poder resolver. ¿Es posible mandar arrays ...
  #1 (permalink)  
Antiguo 02/06/2004, 04:19
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 19 años, 9 meses
Puntos: 0
¿Puedo mandar arrays multidimensionales por URL?

Hola a todos:

Soy nuevo en estos foros y empiezo fuertem con una duda que llevo 2 días sin poder resolver.

¿Es posible mandar arrays multidimensionales por URL? Me explico: hago una consulta a una base de datos y recibo varios registros. Cada uno de los campos de cada registro, lo introduzco en el array, es decir:

while ($row = mysql_fetch_array ($res)){
for ($i=0; $i<$cont; $i++){
$array [$j][$i] = $row[$i];
}$j++;
}

Quizá sea POCO PROFESIONAL, pero soy bastante novato en esto. El caso es que necesito mandar por URL a otro script cada uno de los campos del array (o todo), de la manera:

<a href='destino.php?array[$j]=$array[$j]&array[$i]=$array[$i]'>ENVIAR ARRAY</a>

Pero esto no funciona.

Me gustaría saber si es posible y cómo hacerlo. Mcuhas gracias y un saludo.
  #2 (permalink)  
Antiguo 02/06/2004, 04:57
 
Fecha de Ingreso: mayo-2004
Mensajes: 89
Antigüedad: 19 años, 9 meses
Puntos: 1
Una forma

Yo tuve esa duda hace poco y he encontrado una forma de hacerlo. No es la más indicada pero... ¡¡Funciona!! Por lo visto hay que serializar el array en la página de donde lo quieres enviar y en la de destino deserializarla. Bueno ahi va el script:
enviar_array.php (o lo que quieras)
Código PHP:
<? 
function array_envia($array) { 

    
$tmp serialize($array); 
    
$tmp urlencode($tmp); 

    return 
$tmp


$array=array("algo","nose","otracosa"); 
$array=array_envia($array); 
// Usando un link (URL). 
echo "<a href=\"recibir_array.php?array=$array\">pasar array</a>"
?>
recibir_array.php (recuerda que si quieres cambiar el nombre de esta tendrás que cambiarlo también en la url)
Código PHP:
<? 
function array_recibe($url_array) { 
    
$tmp stripslashes($url_array); 
    
$tmp urldecode($tmp); 
    
$tmp unserialize($tmp); 

   return 
$tmp



$array=$_GET['array']; 
// el método de envio usado. (en el ejemplo un link genera un GET. En el formulario se usa POST podria ser GET tambien ...) 

$array=array_recibe($array); 

foreach (
$array as $indice => $valor){ 
echo 
$indice." = ".$valor."<br>"

?>
Espero que te sirva!
Hasta otra!!!!

Última edición por jorge_368; 02/06/2004 a las 04:58
  #3 (permalink)  
Antiguo 02/06/2004, 06:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Decir que el código propuesto por jorge_368 se publicó en las FAQ's del foro PHP .. y el tema de "serializar" esos datos para propagarlos por el URL es necesario y es la única forma si hablamos de tener que propagar esos datos si o si por el URL .. otra cosa es uses una sesión para almacenar esos arrays (no tendrías ni que serializar/des-serializar) además que los datos no viajarían al cliente (navegador .. en tu link) con el consiguiente ahorro de "transferencia (ancho de banda)" consumido por tu aplicación.

La FAQ original mencionada:
http://www.forosdelweb.com/showthrea...072#post262072

Un saludo,
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:17.