Foros del Web » Programando para Internet » PHP »

Pasar variable a un fichero PHP llamado con include? Otra forma?

Estas en el tema de Pasar variable a un fichero PHP llamado con include? Otra forma? en el foro de PHP en Foros del Web. Tengo un problema a la hora de comunicar mi archivo principal de inicio ( inicio.php ) con otro fichero php que quiero incluir con include() ...
  #1 (permalink)  
Antiguo 13/10/2005, 20:04
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
Pasar variable a un fichero PHP llamado con include? Otra forma?

Tengo un problema a la hora de comunicar mi archivo principal de inicio (inicio.php) con otro fichero php que quiero incluir con include() (p.ej. mostrar.php) pasándole información desde inicio.php.

El funcionamiento es el siguiente:

Desde el fichero inicio.php he de obtener a través de un formulario un valor determinado por medio de una lista de salto con varias opciones. O bien a través de botones de radio. Me da igual.

Todas las opciones llamarán al propio archivo actual inicio.php pasándole una variable de tipo GET llamada 'tipo', (p.ej: inicio.php?tipo='restaurante' es una de las opciones), y como anteriormente ya tenía implementado dentro mismo de inicio.php un código php que sólo se ejecutaba si isset($tipo) era TRUE, se ejecutará su código en esta segunda llamada a dicho archivo.

Entonces este código haría lo siguiente: Tendría otro grupo de condiciones. Todas ellas incluirían el archivo mostrar.php con include(mostrar.php), pero dependiendo de qué opción escogida, mostrar.php ejecutaría una consulta determinada y diferente para cada opción a una base de datos, y anexaría lo que obtuviera de mostrar.php al código del fichero inicio.php

Entonces he aquí el problema. He intentado hacer esto: include('mostrar.php?tipo=restaurante'); por poner un ejemplo de una de las opciones, y me da error.

No se pueden pasar variables usando include() ? Si no es así, cómo lo hago? Por favor, necesito ayuda porque es importante.
  #2 (permalink)  
Antiguo 13/10/2005, 22:05
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
No hace falta que pases nada por query string, simplemente define la variable antes del include y úsala tal cual en el script incluido

Código PHP:
$tipo=$_GET['tipo'];
// AL LLAMAR A mostrar.php, YA RECIBE LA VARIABLE $tipo
// DE NO SER OBVIAMENTE QUE QUIERAS ACCEDER A ELLA DESDE UNA FUNCIÓN
// EN CUYO CASO LA HABRÍAS DE DEFINIR EN LA CABECERA DE LA FUNCIÓN 
// COMO global $tipo; o pasarla como parámetro
include('mostrar.php'); 
Ni siquiera sería necesario definir $tipo=$_GET['tipo'];puedes usar $_GET['tipo'] en mostrar.php


sALU2 ;)
__________________
[+]
[+]

Última edición por yoseman; 13/10/2005 a las 22:15
  #3 (permalink)  
Antiguo 13/10/2005, 22:26
Avatar de leoj90
Usuario baneado!
 
Fecha de Ingreso: agosto-2005
Mensajes: 1.365
Antigüedad: 12 años, 4 meses
Puntos: 0
Ups, se me adelanto yoseman , bueno, nomas recuerdo que tambien puedes con el metodo POST
  #4 (permalink)  
Antiguo 14/10/2005, 05:21
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
Muchas gracias!

Lo he hecho como decís y me sale perfecto!
Leoj90, aunque de esta manera mencionada por yoseman parece la más lógica, usando el método POST que dices cómo lo harías? Se tendría que usar un formulario en vez de include() no?

Un grato saludo!
  #5 (permalink)  
Antiguo 14/10/2005, 08:56
 
Fecha de Ingreso: agosto-2003
Ubicación: santiago, chile
Mensajes: 297
Antigüedad: 14 años, 3 meses
Puntos: 0
saludos

mira si te srive...
una de las formas de pasar la variable a travez del POST, seria como dices tu usando un formulario ej>


suponiendo en tienes eso en el inicio.php
Código:
<BODY>
<?
// aca pasas al muestra.php
echo '<FORM METHOD="POST" ACTION="muestra.php">listado de lo que sea<br>';
?> 
<p>
  <select name="pasando" size="1" id="juegos">
    <option value="Seleccione">Seleccione</option>
    <option value="tekken">TEKKEN</option>
    <option value="sf">SF</option>
    <option value="mk">MK</option>
    <option value="kof">KOF</option>
    <option value="ss">SS</option>
  </select>
    
  <INPUT TYPE="SUBMIT" value="Siguiente">
  
     
  </FORM>
   
</p>
</BODY>
con eso pasarias la varible que escogiste del formulario al muestra.php, en el cual ya puedes llamarla para visualizarlo



muestra.php
Código:
<?
$listo = $_POST['pasando'];
echo "Lo que he pasado de la pagina inicio.php a muestra.php seria: ";
echo '<br>'.$listo;
?>
espero que te sirva de ejemplo
nos vemos
  #6 (permalink)  
Antiguo 14/10/2005, 09:06
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
Gracias por la contestación byzard. No era exactamente eso lo que preguntaba. Eso ya lo tenía claro.

Lo que quiero que haga la 'action' del formulario no es que llame a otro archivo muestra.php, sino que se llame a sí mismo, a inicio.php, para conservar la plantilla de cabecera de página (por decir un ejemplo) y así ahorrar espacio y tiempo, y que entonces el fichero muestra.php se incluyera dentro del mismo inicio.php

No sé si entiendes lo que quiero decir. La solución propuesta por yoseman me ha venido muy bien en este sentido. Muchas gracias de todas formas por proponerlo de otra forma.

Un saludo!
  #7 (permalink)  
Antiguo 14/10/2005, 09:48
 
Fecha de Ingreso: agosto-2003
Ubicación: santiago, chile
Mensajes: 297
Antigüedad: 14 años, 3 meses
Puntos: 0
a ok. entonces el include como dijeron ahi es lo que necesitabas.

nos vemos
  #8 (permalink)  
Antiguo 14/10/2005, 13:32
Avatar de DvD AdN  
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 12 años, 7 meses
Puntos: 0
include, es eso, un include
Al momento de correr PHP, este mete todos los archivos que estas incluyendo en la página.

Asi

1.php
Código PHP:
include ("include.php");
include (
"include2.php"); 
include.php
Código PHP:
$variable1 "hola";
echo 
$variable1
include2.php
Código PHP:
$variable2 "como 'tas";
echo 
$variable2
sería como si el contenido de 1.php fuera
Código PHP:
$variable1 "hola";
echo 
$variable1;
$variable2 "como 'tas";
echo 
$variable2
__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.
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 02:47.