Foros del Web » Programando para Internet » PHP »

Paso de variables por URL en PHP

Estas en el tema de Paso de variables por URL en PHP en el foro de PHP en Foros del Web. Buenas tardes!! Tengo un problemilla que no se si me podrán ayudar. He realizado una aplicación en PHP y de manera local me funciona perfectamente ...
  #1 (permalink)  
Antiguo 09/02/2012, 09:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 94
Antigüedad: 19 años
Puntos: 0
Sonrisa Paso de variables por URL en PHP

Buenas tardes!!
Tengo un problemilla que no se si me podrán ayudar.
He realizado una aplicación en PHP y de manera local me funciona perfectamente aunque no adecuadamente porque uso variables globales.

EL hecho es que la aplicación ya he alojado en un hosting de 1and1 y al pasar por ficheros me he dado cuenta que cosas que me funcionaban aqui no es posible.
He variado el uso de variables globales en la configuracion del hosting tanto para variables globales como para no usarlas y me da problemillas el pasdo e varaibles mediante URL.

ya he mirado en otros posts que si no se trabaja con variables globales tenemos que visualizar las variables de paso mediante $_GET[] el problema viene en un formulario en el que dependiendo de la elección de una lista debe mostrar en la lista de màs abajo diferentes opciones, es decir son <option value>relacionados.

El problema viene en el no sé como coger esa variables que paso como parametro. Indico el código más abajo.

Espero me puedan ayudar.

Muchas gracias y un saludo!

Fiss05

<form name="FormEstadistico" method="post" action="MostrarBusquedaInformes.php" target="_self">
<input type="hidden" name="ClienteSeleccionado" value="<? echo "$Cliente"; ?>">

<h2><div align="center">Elige alguno o todos los criterios de busqueda de informes:</div></h2>
<h3><div align="center">Cliente
<select onChange="window.location = this.options[this.selectedIndex].value; return true;" name="Cliente">
<option value="">Seleccione de la lista</option>
<?
$link=Conexion();

$sql= "SELECT distinct NomCliente, 100clientes.NumCliente FROM 201cartas INNER JOIN 202CartasObra ON 201Cartas.Clave=202CartasObra.Clave INNER JOIN 100clientes ON 100clientes.NumCliente=202CartasObra.NumCliente INNER JOIN 000azul ON 000azul.NumCliente=100clientes.NumCliente WHERE 201Cartas.Email='$_SESSION[NomUsuario]' ORDER BY NomCliente";
$res=mysql_query($sql);
while($rowCliente = mysql_fetch_array($res))
{
?>
<option <? if ($rowCliente[1]== $Cliente) echo "selected";?> value="?Cliente=<?=$rowCliente[1]?>"><?=$rowCliente[0]?></option>
<?
}
?>

</select>
</div><br>
<div align="center"><font face="Arial, Helvetica, sans-serif"> Obra: <select name="Obra">
<option value="">Seleccione de la lista</option>
<?

$sqlObra = mysql_query("SELECT distinct NombreObra,100clientesobra.NumCliente,100clienteso bra.NumObra FROM 201Cartas INNER JOIN 202CartasObra ON 201Cartas.Clave=202CartasObra.Clave INNER JOIN 100clientesobra ON (100clientesobra.NumCliente=202CartasObra.NumClien te and 202CartasObra.NumObra=100clientesobra.NumObra) where Email='$_SESSION[NomUsuario]' and 202CartasObra.NumCliente=$Cliente ORDER BY 100clientesobra.NumObra");

while($rowObra = mysql_fetch_array($sqlObra))
{

?>
<option value="<?=$rowObra[2]?>"><?=$rowObra[0]?></option>
<?
}
?>
</select>
</div>
</form>
  #2 (permalink)  
Antiguo 09/02/2012, 09:51
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Paso de variables por URL en PHP

Debes recoger ese valor que quieres con $_POST['name del campo']

lee esto:

http://php.net/manual/es/language.va...s.external.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 09/02/2012, 10:04
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: Paso de variables por URL en PHP

para verificar que variables recuperas puedes utilizar la instruccion

print_r($_REQUEST) //visualiza todas las variables recibidas tanto $_POST y $_GET
//imprimira algo asi
array([campo1]=>2,[campo2]=>agosto)
//donde campo1 y campo2 son el nombre de tus inputs y lo que sigue de => es el valor que envian

una vez vistas podrias asignarlas a una variable

$variable=$_REQUEST['campo1'];
echo "<br>".$variable;
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 09/02/2012, 10:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Paso de variables por URL en PHP

Por otro lado intenta no usar esto: <? echo "$Cliente"; ?> es mejor que lo hagas así: <?php echo $Cliente; ?>.

Saludos.
  #5 (permalink)  
Antiguo 09/02/2012, 10:19
 
Fecha de Ingreso: noviembre-2005
Mensajes: 94
Antigüedad: 19 años
Puntos: 0
Sonrisa Respuesta: Paso de variables por URL en PHP

Muchas gracias!!
Voy a ponerme con ello a ver que problemillas me da el tema..
  #6 (permalink)  
Antiguo 09/02/2012, 10:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 94
Antigüedad: 19 años
Puntos: 0
Sonrisa Respuesta: Paso de variables por URL en PHP

He intentado ir por partes..
Y primero conseguir que en la primera lista por lo menos me salga el/los valores que me interesan pero no lo consigo..
He intentado primero con $_POST["Cliente"] y posteriormente con $_GET["Cliente"]
No es esta la manera de recoger el valor, lo he sustituido donde antes ponia la variable $Cliente

<select onChange="window.location = this.options[this.selectedIndex].value; return true;" name="Cliente">
<option value="">Seleccione de la lista</option>
<?
$link=Conexion();

$sql= "SELECT distinct NomCliente, 100clientes.NumCliente FROM 201cartas INNER JOIN 202CartasObra ON 201Cartas.Clave=202CartasObra.Clave INNER JOIN 100clientes ON 100clientes.NumCliente=202CartasObra.NumCliente INNER JOIN 000azul ON 000azul.NumCliente=100clientes.NumCliente WHERE 201Cartas.Email='$_SESSION[NomUsuario]' ORDER BY NomCliente";

$res=mysql_query($sql);
while($rowCliente = mysql_fetch_array($res))
{
?>
<option <? if ($rowCliente[1]== $_GET["Cliente"]) echo "selected";?> value="?Cliente=<?=$rowCliente[1]?>"><?=$rowCliente[0]?></option>
<!-- <option <? if ($rowCliente[1]== $Cliente) echo "selected";?> value="?Cliente=<?=$rowCliente[1]?>"><?=$rowCliente[0]?></option> -->
<?
}
?>

</select>

P.D Todo ello con las register_globals=off
Muchas gracias y un saludo!
  #7 (permalink)  
Antiguo 09/02/2012, 13:35
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: Paso de variables por URL en PHP

por post no recibes anda por que no esta dentro de un formulario y por get no recibes nada por que no lo colocas en la url a la que lo mandas

si lo que quieres es enviar por url al momento de seleccionar alguna opcion del select podrias probar esto
Cita:
<?php print_r($_GET);?>
<select onChange="window.location ='?Cliente='+this.options[this.selectedIndex].value; return true;" name="Cliente">
<option value="0">Seleccione de la lista</option>
<option value="1">Cliente1</option>
<option value="2">Cliente2</option>
<option value="3">Cliente3</option>
si lo que quieres es por post debes crear un formulario y en el select utilizar el atributo onchange y hacer un submit
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 10/02/2012, 05:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 94
Antigüedad: 19 años
Puntos: 0
Sonrisa Respuesta: Paso de variables por URL en PHP

Buenos dias!!
El problema según me indicas en el ejemplo es que no sé cuantos clientes me va devolver la consulta asi que <option value="x"> tiene que ser dinamico y que me los genere en tiempo de ejecución.

Con lo cual la sentencia que tengo que utilizar para que me vaya generando es esta:
<option <? if ($rowCliente[1]== $_GET["Cliente"]) echo "selected";?> value="?Cliente=<?=$rowCliente[1]?>"><?=$rowCliente[0]?></option>

Y es aqui donde me genera la duda de como crear esa sentencia usando esa variable Cliente
El problema es que en la aplicacion al principio del todo el usuario se identifica con usuario y clave y unas de las opciones que tengo es Busqueda de Informes que al pinchar en el link automaticamente al desplegar la primera lista me tiene que mostrar los clientes a los que tiene acceso. Quiero decir que no puedo hacer un formulario para pasar los datos porque esos datos tienen que salir automaticamente al pinchar en Busqueda Informes. Es por ello que al desplegar quiero que se muestre esa lista generada dinamicamente....

Muchas gracias por todo y un saludo!!

Fiss05
  #9 (permalink)  
Antiguo 10/02/2012, 11:42
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: Paso de variables por URL en PHP

no importa si es dinamico el numero de clientes lo que hace la sentencia es evaluar cual es el seleccionado en el select(valga la redundancia)

Cita:
<?php print_r($_GET);?>
<select onChange="window.location ='?Cliente='+this.options[this.selectedIndex].value; return true;" name="Cliente">//comienzas tu select
<option value="0">Seleccione de la lista</option>//esta por default
tu tendrias que crear los clientes asi:observa que el value solo tiene el dato que se obtiene de la cosulta
Cita:
<?
$sql="select * from empleados";
$ressql=mysql_query($sql)";
while($rowCliente=mysql_fetch_array($ressql))
{
<option <? if ($rowCliente[1]== $_GET["Cliente"]) echo "selected";?> value="<?$rowCliente[1]?>"><?=$rowCliente[0]?></option><?
}
?>
</select>/terminas tu select
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #10 (permalink)  
Antiguo 14/02/2012, 08:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 94
Antigüedad: 19 años
Puntos: 0
Respuesta: Paso de variables por URL en PHP

Muchisimas gracias!!
Va todo perfecto! Entendia que era asi como tenia que funcionar pero no habia manera lo único que tb se me habia juntado que 1and1 donde tengo el alojamientoweb me distinguia entre minusculas y mayusculas en la tabla de la consulta mientras que en mi localhost no y la consulta no me daba el mismo resultado.

Un saludo!

Etiquetas: formulario, mysql, paso, sql, url, variables, usuarios
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 22:16.