Foros del Web » Programando para Internet » PHP »

Pasar array por URL

Estas en el tema de Pasar array por URL en el foro de PHP en Foros del Web. Amigos... Tengo un <SELECT> (de html aclaro) de paises en el cual seleciono uno y este hace que la pagina se regargue para cargar otro ...
  #1 (permalink)  
Antiguo 11/11/2005, 11:10
Avatar de flaconovato  
Fecha de Ingreso: noviembre-2005
Ubicación: Bogota, Colombia
Mensajes: 137
Antigüedad: 12 años, 1 mes
Puntos: 1
Pasar array por URL

Amigos...

Tengo un <SELECT> (de html aclaro) de paises en el cual seleciono uno y este hace que la pagina se regargue para cargar otro <SELECT> este con los puertos correspondientes al pais selecionado anteriormente ok.

pero el <SELECT> de puertos es multiple, y requiero pasar el array que me arraja este <SELECT> por URL... voy a colocar el el codigo donde lleno el <SELECT MULTIPLE> y la parte donde envio. los datos... espero haber sido claro de lo contario hagamenlo saber... para aclarar dudas... gracias

Código PHP:
<select name="idpuertoorigen[]" multiple size="5">
<?php
       
if (!empty($idpais_ori))
       {
            
// Consulta para cargar combos de Puertos
            
$sql_puerto "select idpuerto, puedescripcion from puerto where idpais='$idpais_ori' order by puedescripcion";
        
$res_puerto mysql_db_query($database_cargo,$sql_puerto);            if (mysql_num_rows($res_puerto) != 0)
        {
            while (
$fila_puerto_ori mysql_fetch_array($res_puerto))  
            {
                    if(
$puerto_ori == $fila_puerto_ori['idpuerto'])
                {
                echo 
"<option value='".$fila_puerto_ori['idpuerto']."' selected>".$fila_puerto_ori['puedescripcion']."</option>";
                }
                else
                {
                echo 
"<option value='".$fila_puerto_ori['idpuerto']."'>".$fila_puerto_ori['puedescripcion']."</option>";
                }                                                                    
                      }
            
mysql_free_result($res_puerto); // Liberar memoria usada por consulta.                            
        

        else
        {
            echo 
"<option value='null'>No hay Puertos para este pais </option>";
        }
    } 
    else
    {
        echo 
"<option value='null'> Seleccione un Item  </option>";
    }
?>
</select>
y aca es donde envio los datos por URL.

Código PHP:
echo "<script>";
echo 
"window.location='vercotizacion.php?ori=".$_POST['idpuertoorigen']."&des=".$_POST['idpuertodestino']."&cod=".$_POST['codigo']."'";
echo 
"</script>"
__________________
El pueblo que se resigna a tecnologías pasadas, sucumbe en el campo de la ignorancia y se entierra en sus ideales.:arriba: :arriba:
  #2 (permalink)  
Antiguo 11/11/2005, 13:15
Avatar de flaconovato  
Fecha de Ingreso: noviembre-2005
Ubicación: Bogota, Colombia
Mensajes: 137
Antigüedad: 12 años, 1 mes
Puntos: 1
De acuerdo Encontre la solucion

Amigos Foristas... encontre la solucion en este link por si alguin lo nesecita en algun momento...

aca coloco el ejemplo que encontre.

esta es la pagina que envia:
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 formulario y campo hidden.
echo <<<HTML
<form action="recibir_array.php" method="POST">
   <input name="array" type="hidden" value="$array">
   <input name="enviar" type="submit" value=" Enviar ">
</form>
HTML;
// Usando un link (URL).
echo "<a href="recibir_array.php?array=$array">pasar array</a>";
?>
y esta es la que recibe.

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>";
}
?>
Saludos
__________________
El pueblo que se resigna a tecnologías pasadas, sucumbe en el campo de la ignorancia y se entierra en sus ideales.:arriba: :arriba:
  #3 (permalink)  
Antiguo 13/11/2005, 22:56
 
Fecha de Ingreso: abril-2004
Mensajes: 634
Antigüedad: 13 años, 7 meses
Puntos: 2
Cita:
Iniciado por flaconovato
Amigos Foristas... encontre la solucion en este link por si alguin lo nesecita en algun momento...

aca coloco el ejemplo que encontre.

esta es la pagina que envia:
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 formulario y campo hidden.
echo <<<HTML
<form action="recibir_array.php" method="POST">
   <input name="array" type="hidden" value="$array">
   <input name="enviar" type="submit" value=" Enviar ">
</form>
HTML;
// Usando un link (URL).
echo "<a href="recibir_array.php?array=$array">pasar array</a>";
?>
y esta es la que recibe.

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>";
}
?>
Saludos
Hola.

He probado esto pero me da errores.

El primero me arroja: Parse error: parse error, expecting `','' or `';'' in line 27.

Y el segundo: Warning: Invalid argument supplied for foreach() in line 11.

Este codigo me serviria mucho.

Gracias
__________________
Una a una resuelvo mis dudas... y una a una se me suman mas dudas... :adios:
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:05.