Foros del Web » Programando para Internet » PHP »

Variable En Misma Pagina No Reconoce

Estas en el tema de Variable En Misma Pagina No Reconoce en el foro de PHP en Foros del Web. Hola Tengo la siguiente duda acerca de un pase de variables en la misma pagina por formulario este es ; if ($_GET['control']==""){ $id_tabla = $HTTP_GET_VARS["id"]; ...
  #1 (permalink)  
Antiguo 10/11/2006, 14:38
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Mensaje Variable En Misma Pagina No Reconoce

Hola

Tengo la siguiente duda acerca de un pase de variables en la misma pagina por formulario este es ;

if ($_GET['control']==""){
$id_tabla = $HTTP_GET_VARS["id"];
$memo[0]="$id_tabla";
}

if ($_GET['control']=="1"){
if ($_GET['select']=="poblacion"){
$id_tablaform=$memo[0];
$_pagi_sql = "SELECT * FROM correo_g.".$id_tablaform." order by poblacion";
}
}

Luego tengo este formulario en la misma pagina

<td height="32"><FORM METHOD="get" ACTION="paginaleo.php">
<p>
<p>
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Ordenar
alfab&eacute;ticamente por</font></strong>
<div align="center"><select name="select">
<option value="poblacion">Poblacion</option>
<option value="nada">Empresa</option><br>
<option value="especialidad">Especialidad</option>
</select>
<input name="ocult" type="hidden" value="lugo">
<input name="control" type="hidden" value="1">
<input type="submit" value="VER"></div>
</FORM

Bien el funcionamiento es el siguiente, mientras el usuario no haga el submit no entrara en el if de control =1 con lo cual el if de control == "" me lo hace siempre bien y funciona bien.

El problema esta cuando hace el if control = "1" entonces me peta como vereis he utilizado hasta una matriz para guardar la variable $id_tabla ya que cuando entra en ese if control = "1" quiero que me guarde la $id_tabla correspondiente al $HTTP_GET_VARS["id"];

El problema creo que lo tengo que no se como guardar el valor de $id_tabla en una variable estatica, es decir que conforme vaya pasando paginas siguientes no pierda el valor el cual corresponde al nombre de la tabla hacer el select.

Gracias por la ayuda!
  #2 (permalink)  
Antiguo 10/11/2006, 15:32
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Jeje me pierdo en tu explicación . Trata de ser un poco más claro cuando expongas tus problemas.

Ahora bien por lo poco que entendí si quieres "pasar" un valor por n páginas, te recomiendo que uses sesiones y de esta forma ya podras acceder a este dato en cualquier página.

Saludillos.
  #3 (permalink)  
Antiguo 10/11/2006, 16:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Cita:
Iniciado por mauled Ver Mensaje
Jeje me pierdo en tu explicación . Trata de ser un poco más claro cuando expongas tus problemas.

Ahora bien por lo poco que entendí si quieres "pasar" un valor por n páginas, te recomiendo que uses sesiones y de esta forma ya podras acceder a este dato en cualquier página.

Saludillos.
Hola!

El problema es el siguiente abro una pagina php la se conecta a una BD y a una tabla en concreto cuando el usuario accede a un formulario que hay en la misma pagina

La tabla la coge de aqui ;

$id_tabla = $HTTP_GET_VARS["id"];

Donde id esta de la anterior pagina php que viene.

Luego el usuario "si lo desea" puede seleccionar el FORMULARIO, sino abajo aparecen los nº de pagina que va seleccionado.

El problema radica si envia el formulario ;

<FORM METHOD="get" ACTION="paginaleo.php">
<p>
<p>
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Ordenar
alfab&eacute;ticamente por</font></strong>
<div align="center"><select name="select">
<option value="poblacion">Poblacion</option>
<option value="nada">Empresa</option><br>
<option value="especialidad">Especialidad</option>
</select>
<input name="ocult" type="hidden" value="lugo">
<input name="control" type="hidden" value="1">
<input type="submit" value="VER"></div>
</FORM>

Cuando pulsa el submit le lleva a este if ;

if ($_GET['control']=="1"){
if ($_GET['select']=="poblacion"){
$id_tablaform=$memo[0];
$_pagi_sql = "SELECT * FROM correo_g.".$id_tablaform." order by poblacion";
}
}

El primer if lo hace correcto, el segundo if tambien, entonces me peta gusto
aqui ;

$id_tablaform=$memo[0];

lo que intento con este array es sacarle el valor de $id_tabla la cual he conseguido la primera vez que cargo la pagina php es decir al efectuar
el $id_tabla = $HTTP_GET_VARS["id"];

Lo que intento es si tengo por ejemplo la $id_tabla = mallorca (tabla mallorca del mysql) como guadar una variable estatica con ese valor es decir que $id_tablaform aunque cargue la pagina una y otra vez valga siempre en este caso (mallorca)

He pensado utilizando arrays, pero desconzo si al recargar la pagina se borra el array o se mantiene.

De nuevo gracias por la ayuda!
  #4 (permalink)  
Antiguo 10/11/2006, 17:00
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Hay distintas formas, en sesiones o en cookies. segun he entendido necesitas guardar el valor de $id_tablaform. Leete manuales de sessiones, si no postea aqui y te diré como hacerlo. Bueno, lo que pasa es que tu pones parte del codigo, si nos explicaras la base de datos, el php y todo te diriamos las cosas, porque segun veo, tu no pones para que se ordene
$_pagi_sql = "SELECT * FROM correo_g.".$id_tablaform." order by poblacion";
no se porque lo pones alli, que es que se crea una tabla con correo_g.y la id? Esque pasa lo siguiente:
Puedes utilizar la variable global $_POST para guardar lo de el post y ya esta, porque no entiendo lo que quieres hacer con este codigo. Sé qie has guardado un dato, que dato quieres guardar, donde esta? no se, explica detenidamente el script o pon todo el codigo, que eso seria lo mejor.
  #5 (permalink)  
Antiguo 10/11/2006, 19:55
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
[QUOTE=hebo;1775435]Hay distintas formas, en sesiones o en cookies. segun he entendido necesitas guardar el valor de $id_tablaform. Leete manuales de sessiones, si no postea aqui y te diré como hacerlo. Bueno, lo que pasa es que tu pones parte del codigo, si nos explicaras la base de datos, el php y todo te diriamos las cosas, porque segun veo, tu no pones para que se ordene
QUOTE]

Mas o menos siguiendo vuestros consejos ahora me guarda el valor de
$id_tabla = $HTTP_GET_VARS["id"];

Lo posteo por si alguien se le presenta el mismo problema y os pregunto una ultima duda que tengo sobre la session.

pagina1.php?mallorca (mallarco es el nombre de la tabla)

al clickar usuario llega a pagina2.php

pagina2.php
session_start(); //abro una session
"me conecto a la base de datos"...
$id_tabla = $HTTP_GET_VARS["id"]; //meto el valor de mallorca = $id_tabla
$_SESSION['comprobar'] = $id_tabla; //guardo en la session de nombre comprobar lo que vale en este caso Mallorca.

=== En este (if) el usuario no entra sino accede al formulario ===

if ($_GET['control']=="1"){ //controlo que viene del formulario
if ($_GET['select']=="poblacion"){ //miro que ha seleccionado en el select
$id_tabla = $_SESSION['comprobar']; //recupero la variable (Mallorca) que he guardado antes.
(le listo la tabla mallorca con otro orden)
}
}

Luego si el usuario voluntariamente accede al formulario que esta en la misma pagina lo control por

<FORM METHOD="get" ACTION="pagina2.php">
<option value="poblacion">Poblacion</option>
<input name="control" type="hidden" value="1">

Mi duda es, la session que he abierto mientras el usuario esta en esta pagina es decir pagina2.php si entra otro usuario en esta misma pagina pagina2.php, hay interferencias entre sessiones? y al salir debo borrar la session? o es automatico alcabo de un tiempo.

Gracias de nuevo, saludos. y disculpar si hago novatas de sessionista y php
  #6 (permalink)  
Antiguo 11/11/2006, 02:01
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
No creo que haya interferencias, pero se recomienda salir de la sesion una vez utilizada. Piensa que si recargan la pagina, los datos en teoria se borran ( DEL FORM) y asi, si envian los datos otra vez, se creara otra vez la sesio con distintos valores. Pruebalo asi, nos dices que tal anda y nos dices cualquier problema que puedas tener. Una cosa:
Aconsejo no utilizar metodo GET para enviar, yo usaria post. Es mas practico
y para hacer un if es tansolo hacer:
Código PHP:
<?
if ($_POST['submit']) {
tal tal tal
}
?>
Decirte que tienes que ponerle un nombre al submit y ya esta ;)
Espero haberte servido de ayuda.
  #7 (permalink)  
Antiguo 11/11/2006, 14:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Cita:
Iniciado por hebo Ver Mensaje
No creo que haya interferencias, pero se recomienda salir de la sesion una vez utilizada. Piensa que si recargan la pagina, los datos en teoria se borran ( DEL FORM) y asi, si envian los datos otra vez, se creara otra vez la sesio con distintos valores. Pruebalo asi, nos dices que tal anda y nos dices cualquier problema que puedas tener. Una cosa:
Aconsejo no utilizar metodo GET para enviar, yo usaria post. Es mas practico
y para hacer un if es tansolo hacer:
Código PHP:
<?
if ($_POST['submit']) {
tal tal tal
}
?>
Decirte que tienes que ponerle un nombre al submit y ya esta ;)
Espero haberte servido de ayuda.
Hola!

Bueno he rectificado lo del GET por POST, y el submit va bien pero me da una cosa rara supongo por el tema de sessiones.

Cuando entra el usuario perfecto, utiliza el formulario perfecto luego si lo desea puede ir visitando las demas paginas, hasta aqui bien todo.

Cuando cierro la ventana, y vuelvo a entrar en menos de 10 segundos, me abre la ventana pero la cierra de golpe, ¿tema session que tarda en borrarse del servidor php un tiempo? he pensando en poner un boton para que asi al cerrar la ventana cierre, la session. ¿que os parece?

Saludos y gracias por todo!
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 00:52.