Foros del Web » Programando para Internet » PHP »

Duda con paso de variables por URL

Estas en el tema de Duda con paso de variables por URL en el foro de PHP en Foros del Web. Buenos días a todos! Soy nuevo tanto en el foro como en PHP. Tengo una gran duda que no logro solucionar por ningún lado con ...
  #1 (permalink)  
Antiguo 13/12/2009, 08:43
 
Fecha de Ingreso: diciembre-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Duda con paso de variables por URL

Buenos días a todos! Soy nuevo tanto en el foro como en PHP. Tengo una gran duda que no logro solucionar por ningún lado con respecto al paso de variables por PHP.
Mi pregunta es la siguiente (la trataré de hacer lo mas entendible posible) tengo una página que contiene:

index.php
---------

Código PHP:
<html>
<head>
</head>
<body>
    <div>
        <a href="index.php?var=1"><img src="imagen.jpg"></a>
    </div>
    <div id="nombredeldiv">
        <?PHP
            $var 
$_GET['var'];
                if (
$var== "") include("textodeprueba.txt"); 
                else echo 
"<a href='index.php'>TEXTO NUEVO</a>";
        
?>
    </div>
</body>
</html>
Esta página cada vez que le doy click a la IMAGEN.JPG hace que envie la variable VAR hacia el mismo documento INDEX.PHP para cambiar el contenido de un div. Normalmente ella se carga con el TEXTO DE PRUEBA pero al dar click a la imagen se envia una variable hacia la misma pagina INDEX.PHP para cambiar el contenido del div donde se encuentra el TEXTO DE PRUEBA.

Cada vez que le doy click a la imagen la página completa se recarga (esto también se ve ya que entre la página donde esta el texto de prueba y el TEXTO NUEVO se visualiza una página en blanco molestosa), he probado con AJAX y resulta muy bien cambiar el contenido del div pero existe un pequeño detalle, necesito que en la URL se vea la dirección INDEX.PHP?VAR=1, para que cuando se ingrese esa dirección se pueda visualizar de manera inmediata el TEXTO NUEVO sin tener que pasar por el TEXTO DE PRUEBA, cosa que no pude hacer (quizás si se pueda hacer pero yo no se) con AJAX.

No me gustaría trabajar con iframes ya que estaría cayendo de nuevo en HTML y no estaría mostrando en la URL la dirección INDEX.PHP?VAR=1.

Entonces, existe alguna manera de cambiar el contenido de un div sin recargar toda la página? Existe alguna manera de recargar toda la página sin que se vea la página en blanco? O existe alguna otra manera de hacer lo que intento llevar a cabo?

De verdad le agradecería mucho al que me pueda ayudar con cualquier comentario, explicación o sugerencia.

Gracias.
  #2 (permalink)  
Antiguo 13/12/2009, 08:48
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Duda con paso de variables por URL

Si, como vos bien decis es un tema de AJAX, no de PHP....

En tu codigo de AJAX, en esta parte pone asi:
(supongamos que xhr es tu objeto XMLHttpRequest)

Código HTML:
<!-- a tu vinculo le pones una llamada a la funcion -->

<a href="javascript: startAjax()"><img /></a>

var v=1;

xhr.open("GET","tuArchivo.php?var="+v);
Y ahi si te va a funcionar el $_GET['v'] de tu archivo php.
No se si quedo claro, pero el php al que estas llamando en open() no puede ser el mismo que el actual... O sea, hace un php aparte, ponele otro nombre y llama a ese. Se entiende?
  #3 (permalink)  
Antiguo 13/12/2009, 08:53
 
Fecha de Ingreso: diciembre-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda con paso de variables por URL

No amigo, no entendí nada, pero esto me está funcionando, lo que deseo es cambiar el contenido del div sin que se recargue nuevamente la página, para que no aparezca la página en blanco y que en la URL aparezca INDEX.PHP?VAR=1, me puedes explicar mejor por favor? Soy muy novato en cuestiones de php y de javascript =( Gracias!

Cita:
Iniciado por jackson666 Ver Mensaje
Si, como vos bien decis es un tema de AJAX, no de PHP....

En tu codigo de AJAX, en esta parte pone asi:
(supongamos que xhr es tu objeto XMLHttpRequest)

Código HTML:
<!-- a tu vinculo le pones una llamada a la funcion -->

<a href="javascript: startAjax()"><img /></a>

var v=1;

xhr.open("GET","tuArchivo.php?var="+v);
Y ahi si te va a funcionar el $_GET['v'] de tu archivo php.
No se si quedo claro, pero el php al que estas llamando en open() no puede ser el mismo que el actual... O sea, hace un php aparte, ponele otro nombre y llama a ese. Se entiende?
  #4 (permalink)  
Antiguo 13/12/2009, 09:08
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Duda con paso de variables por URL

Cita:
Iniciado por risingforce308 Ver Mensaje
[...]
he probado con AJAX y resulta muy bien...
[...]
Vos dijiste que ya tenias un ajax andando....
  #5 (permalink)  
Antiguo 13/12/2009, 09:10
 
Fecha de Ingreso: diciembre-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda con paso de variables por URL

Si claro, pero me refería a que había probado un AJAX pero solamente lo probé para cambiar el contenido del div, si lo puedo cambiar pero en la URL no me aparece el paso de variables.

Cita:
Iniciado por jackson666 Ver Mensaje
Vos dijiste que ya tenias un ajax andando....
  #6 (permalink)  
Antiguo 13/12/2009, 09:17
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Duda con paso de variables por URL

Código HTML:
<body>
<script language="javascript">
var xhr;
function startAjax(v){
	if(window.XMLHttpRequest){
		xhr=new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xhr=new ActiveXObject("Microsoft.XMLHTTP");
	}
xhr.open("GET","tuArchivo.php?var="+v);
xhr.onreadystatechange=function (){
	if(xhr.readyState==4){
	if(xhr.status==200){
		var div=document.getElementById("algo");
        //esta es la respuesta de tu php
		div.innerHTML=xhr.responseText;
		}
	}
}
xhr.send(null);	
}
</script>
<a href="javascript: startAjax('1')"><img src="imagen.jpg"></a>
<div id="algo"></div>
</body> 
Con eso y tu php, modificas el contenido de ese div sin recargar. Lo que no me queda bien en claro es para que necesitas que en la url se vea el paso de variables... Si el php se ejecuta igual, el parametro se le pasa por GET... La verdad no entiendo
  #7 (permalink)  
Antiguo 13/12/2009, 09:21
 
Fecha de Ingreso: diciembre-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda con paso de variables por URL

Gracias amigo! Pero que hago? Sustituyo:

Código HTML:
<body> 
    <div> 
        <a href="index.php?var=1"><img src="imagen.jpg"></a> 
    </div> 
    <div id="nombredeldiv"> 
        <?PHP 
            $var = $_GET['var']; 
                if ($var== "") include("textodeprueba.txt");  
                else echo "<a href='index.php'>TEXTO NUEVO</a>"; 
        ?> 
    </div> 
</body> 
Por esto:

Código HTML:
<body>
<script language="javascript">
var xhr;
function startAjax(v){
	if(window.XMLHttpRequest){
		xhr=new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xhr=new ActiveXObject("Microsoft.XMLHTTP");
	}
xhr.open("GET","tuArchivo.php?var="+v);
xhr.onreadystatechange=function (){
	if(xhr.readyState==4){
	if(xhr.status==200){
		var div=document.getElementById("algo");
        //esta es la respuesta de tu php
		div.innerHTML=xhr.responseText;
		}
	}
}
xhr.send(null);	
}
</script>
<a href="javascript: startAjax('1')"><img src="imagen.jpg"></a>
<div id="algo"></div>
</body> 

??


Cita:
Iniciado por jackson666 Ver Mensaje
Código HTML:
<body>
<script language="javascript">
var xhr;
function startAjax(v){
	if(window.XMLHttpRequest){
		xhr=new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xhr=new ActiveXObject("Microsoft.XMLHTTP");
	}
xhr.open("GET","tuArchivo.php?var="+v);
xhr.onreadystatechange=function (){
	if(xhr.readyState==4){
	if(xhr.status==200){
		var div=document.getElementById("algo");
        //esta es la respuesta de tu php
		div.innerHTML=xhr.responseText;
		}
	}
}
xhr.send(null);	
}
</script>
<a href="javascript: startAjax('1')"><img src="imagen.jpg"></a>
<div id="algo"></div>
</body> 
Con eso y tu php, modificas el contenido de ese div sin recargar. Lo que no me queda bien en claro es para que necesitas que en la url se vea el paso de variables... Si el php se ejecuta igual, el parametro se le pasa por GET... La verdad no entiendo
  #8 (permalink)  
Antiguo 13/12/2009, 09:26
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Duda con paso de variables por URL

Ajam.... Y pones en esto
Código PHP:
<?php 

#fijate que le cambie el nombre a la variable de $_GET
$var $_GET['v']; 
if (
$var== "") include("textodeprueba.txt");  
else echo 
"<a href='index.php'>TEXTO NUEVO</a>"
?>
En un archivo aparte con un nombre lindo y en donde dice xhr.open() le cambias el nombre que tiene (tuArchivo.php) por el que le pusiste
  #9 (permalink)  
Antiguo 13/12/2009, 09:37
 
Fecha de Ingreso: diciembre-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda con paso de variables por URL

Amigo me funcionó al pelo! Pero todavía existe un problema. En la URL no me está pasando la variable. Yo necesito que la pase para cuando se ingrese directamente esa url aparezca el div cargado con el contenido nuevo, entiendes?


Cita:
Iniciado por jackson666 Ver Mensaje
Ajam.... Y pones en esto
Código PHP:
<?php 

#fijate que le cambie el nombre a la variable de $_GET
$var $_GET['v']; 
if (
$var== "") include("textodeprueba.txt");  
else echo 
"<a href='index.php'>TEXTO NUEVO</a>"
?>
En un archivo aparte con un nombre lindo y en donde dice xhr.open() le cambias el nombre que tiene (tuArchivo.php) por el que le pusiste
  #10 (permalink)  
Antiguo 13/12/2009, 09:40
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Duda con paso de variables por URL

Si, entonces necesitas recargar la pagina..... Para que queres eso?? La verdad me parece algo sin sentido. Mira si por alguna razon yo pongo www.tupagina.com/index.php?var=852

Me queda una pagina en blanco o mejor aun, un mensaje de error o algo por el estilo. No entiendo la verdad....
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:46.