Foros del Web » Programando para Internet » PHP »

Actualizar una variable PHP sin recargar la página.

Estas en el tema de Actualizar una variable PHP sin recargar la página. en el foro de PHP en Foros del Web. Hola a todos. Lo que quiero hacer es lo siguiente: Tengo una imagen que es un enlace, la cual al hacer click en ella va ...
  #1 (permalink)  
Antiguo 21/06/2012, 17:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 13 años, 11 meses
Puntos: 0
Actualizar una variable PHP sin recargar la página.

Hola a todos.
Lo que quiero hacer es lo siguiente:
Tengo una imagen que es un enlace, la cual al hacer click en ella va a otro punto de esa misma página, usando un ancla:
Código HTML:
<a class="introlink anchorLink" href="#galeria" ><img src="<?php echo $row['rutaImagen']; ?>" /></a> 
Esto está dentro de un bucle WHILE de php, en el cual saco una imagen cogiendo para el src una ruta que saco de la base de datos.

Necesito que al hacer click en el enlace, se vaya a la posición donde está el ancla pero que se le pase una variable como parámetro, esto sería poniendo en el href, #galeria?parametro=nombre_del_album.

Vale pues en la otra parte de la página, donde está el ancla tengo lo siguiente:
Código PHP:
<?php echo "El valor del parametro es " $parametro?>

El problema es que al ancla no le llega la variable con ningún valor. Yo he usado eso de mandar parámetros por la url cuando iba a otra página, pero ahora que no tengo que recargar la página supongo que por eso no funcionará. Es posible que haya que usar AJAX (no sé AJAX), si alguien me pudiera decir como conseguir que se mande esa variable y en el ancla se pueda mostrar su valor lo agradecería.


Si esto debería estar en la sección de Ajax muévanlo o dígame que haga la pregunta en esa sección.
Muchas gracias.
  #2 (permalink)  
Antiguo 21/06/2012, 21:19
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Actualizar una variable PHP sin recargar la página.

Porque está al revés, el parámetro va primero que el identificador, prueba poniendo

?parametro=nombre_del_album#galeria

en vez de

#galeria?parametro=nombre_del_album.

saludos
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #3 (permalink)  
Antiguo 22/06/2012, 06:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Actualizar una variable PHP sin recargar la página.

XlamAlex, lo pongo como me dices pero al pinchar en el enlace no hace nada, no va a la posición del ancla.

Alguna idea de por qué?
  #4 (permalink)  
Antiguo 22/06/2012, 12:33
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Actualizar una variable PHP sin recargar la página.

¿Podrías poner el código completo y más detalles de lo que quieres?

Por lo que he podido entender es que en una página, cargue un cierto contenido con ese parámetro, y luego se posicione en un lugar de esta, es eso?
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #5 (permalink)  
Antiguo 22/06/2012, 14:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Actualizar una variable PHP sin recargar la página.

Creo que tengo una idea con la que conseguiré hacer lo que quiero mi pregunta ahora es otra:

Tengo un enlace:
Código HTML:
Ver original
  1. <a href="#" onclick='recargar(<?php echo htmlentities($row['album']); ?>);' >enlace</a>

Y no soy capaz de meter en el parámetro de la función un literal que recojo de una base de datos... si pongo esto no me manda nada.

Espero alguna sugerencia, Gracias!

Última edición por abuitrago81; 22/06/2012 a las 16:12
  #6 (permalink)  
Antiguo 22/06/2012, 18:11
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Actualizar una variable PHP sin recargar la página.

Si es un literal, prueba algo como esto

<a href="#" onclick='recargar(<?php echo '"', htmlentities($row['album']), '"'; ?>);' >enlace</a>

Saludos..
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #7 (permalink)  
Antiguo 22/06/2012, 19:31
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Actualizar una variable PHP sin recargar la página.

Bueno ya casi lo tengo jeje.
Ahora consigo que al hacer clic en el enlace vaya a una funcion que carga una página php en el <div> que tengo más abajo, el problema es el siguiente:
En esa otra página php cargo un bloque de código en función de si mando como parámetro un nombre de album u otro, de forma que me mete todo dentro de las etiquetas:

<section id="Madrid">
<!-- todo el código -->
</section>

Pero claro, el id es dinámico, es decir, coge el valor que le haya pasado del enlace a la función js y luego vuelto a mandar desde la función js a la página php.

El problema es que el enlace inicial en el href tiene un ancla al section con el id del album sobre el que se ha pinchado, y claro, en ese momento todavía no se ha creado el section con ese nombre.

Vamos que le tengo que hacer clic una vez y se crea la galería abajo, y luego le tengo que dar otra vez para que encuentre ese ancla y se desplace...

Alguna idea para hacer que al hacer clic en el enlace se cargue el contenido y acto seguido se mueva a ese punto de la página (ancla) ???
  #8 (permalink)  
Antiguo 22/06/2012, 20:01
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Actualizar una variable PHP sin recargar la página.

Luego de leer mil veces tu respuesta, trato de entender lo siguiente:

1 - ¿Cuando das click al enlace, este te carga el contenido pero te manda para el tope la página, sin embargo no quieres eso, es ese el problema?

2 - O bien, ¿Tu problema es que cuando llamas a la función recargar, esta te carga la página PERO no se posiciona puesto a que ya tiene un identificador predefinido?

Por lo general cuando entras a una página con un identificador, ejemplo: www.mipagina.es/pagina.php#identificador, esta espera cargar primero toda la página, y luego es que se desplaza..

En segundo lugar, ¿Cómo lograste cargar el contenido de esa página?, ¿a través de un iframe o una llamada ajax?

Sigo insistiendo, publica más código, para tratar de analizarlo, y ver que es lo quieres..

__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #9 (permalink)  
Antiguo 22/06/2012, 21:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Actualizar una variable PHP sin recargar la página.

Ya imagino que no me explico bien jeje.
A ver, mi página es un menú arriba con 5 opciones, una de ellas es Galerias. Cada opción de menú NO va a otra página, sino que se desliza hasta una posición más para abajo en esa misma página, cada una con un #identificador.

Que estan puestos de esta forma:
Código HTML:
Ver original
  1. <section id="noticias">
  2.  
  3.  
  4. <section id="galerias">
  5.  
  6.  
  7. <section id="contacto">
  8.  
  9.  
  10. <div id="miDiv">
  11.       <-- aquí deberá cargarse el contenido. en principio no hay nada -->
  12. </div>

Bueno pues en la sección de galerías el código es este:
Código HTML:
Ver original
  1. <section id="portfolio"> <!-- HTML5 section tag for the portfolio 'section' -->
  2.        
  3.             <h2 class="work">Mis Galerías</h2>
  4.                
  5.             <ul class="work">
  6.                 <?php
  7.                     while($row = mysql_fetch_array($album)) {
  8.                     $seccion_modificada = str_replace(" ","_",htmlentities($row['album']));
  9.                     $seccion_modificada = elimina_acentos($seccion_modificada);            
  10.                 ?>
  11.                 <li><a href="#<?php echo $seccion_modificada; ?>" title="<?php echo htmlentities($row['album']); ?>" onclick='recargar("<?php echo $seccion_modificada; ?>");' ><img src="<?php echo $row['rutaImagen']; ?>" alt="<?php echo htmlentities($row['album']); ?>" /></a></li>
  12.                 <?php } ?>
  13.             </ul>
  14.                    
  15.         </section>

Ahí lo que salen son varios thumbnails que representan a cada álbum (Madrid, Londres, Tokio,etc...) y esas imagenes tienen un evento onclick que llama a una función y le envía como parámetro el nombre del álbum.

Código Javascript:
Ver original
  1. <script type="text/javascript" >
  2.             function recargar(parametro){
  3.                 var url = "recargarGaleria.php?p="+parametro;
  4.                 $('#miDiv').load(url);
  5.             }
  6.      </script>

Y en esta función le digo que en el <div> que tengo abajo del todo vacío me cargue el contenido que hay en la página recargarGaleria.php, a la cual le paso como parametro por la url el parametro q había recibido la función (el nombre del album).

Bueno pues la página php tiene lo siguiente:
Código PHP:
Ver original
  1. <?php
  2.     include('db.inc.php');
  3.  
  4.     $param = $_GET['p'];
  5.         global $conexion;      
  6.     echo '<section id="'.$param.'">'; ?>
  7.     <h2 class="work"><?php echo $param; ?></h2>
  8.     <?php echo '<ul class="work">'; ?>
  9.     <?php
  10.            $album3 = mysql_query("SELECT * from galeria WHERE titulo = '". $param ."' ORDER BY id DESC", $conexion);
  11.            while($row3 = mysql_fetch_array($album3)){ ?>
  12.                 <li><a class="group1" href="<?php echo $row3['ruta']; ?>" title="<?php echo htmlentities($row3['descripcion']); ?>"><img src="<?php echo $row3['thumbnail']; ?>" alt="<?php echo htmlentities($row3['descripcion']); ?>" /></a></li>
  13.            <?php } ?>
  14.             </ul>
  15.     <?php echo '</section>'; ?>

Y claro, el problema es que en el enlace que tiene el onclick le dice que vaya a algo que no existe aún, href="#Madrid" por ejemplo, pero hasta que no llega a la página php no se crea el <section id="Madrid">.
Por eso cuando hago click una vez me carga el contenido dentro del <div>, pero no desplaza allí. Si le vuelvo a hacer click ya si que se desplaza porque ahora ya hay un <section id="Madrid"> donde ir.

Lo que necesito es que despues de cargar la página se posicione dnd está el<div id="miDiv">.

Espero que ahora sepas un poco mejor lo que trato de hacer.
Si kieres ver lo que pasa pruebalo aquí: http://www.abuitrago.comli.com/

Si no se pueden poner enlaces dímelo y lo quito. Un saludo.
  #10 (permalink)  
Antiguo 22/06/2012, 22:15
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Actualizar una variable PHP sin recargar la página.

Ahhhhh, ya entendí, ves..? que fue más fácil jeje?

Mira, ¿Ya has intentado en vez de posicionar la página en las sections, posicionarla en el identificador miDiv? Ejemplo:

En vez de:

Código PHP:
<section id="portfolio"> <!-- HTML5 section tag for the portfolio 'section' -->
        
            <h2 class="work">Mis Galerías</h2>
                
            <ul class="work">
                <?php 
                    
while($row mysql_fetch_array($album)) { 
                    
$seccion_modificada str_replace(" ","_",htmlentities($row['album']));
                    
$seccion_modificada elimina_acentos($seccion_modificada);             
                
?>
                <li><a href="#<?php echo $seccion_modificada?>" title="<?php echo htmlentities($row['album']); ?>" onclick='recargar("<?php echo $seccion_modificada?>");' ><img src="<?php echo $row['rutaImagen']; ?>" alt="<?php echo htmlentities($row['album']); ?>" /></a></li>
                <?php ?>
            </ul>
                    
        </section>
Prueba:

Código PHP:
<section id="portfolio"> <!-- HTML5 section tag for the portfolio 'section' -->
        
            <h2 class="work">Mis Galerías</h2>
                
            <ul class="work">
                <li><a href="#miDiv" title="<?php echo htmlentities($row['album']); ?>" onclick='recargar("<?php echo $seccion_modificada?>");' ><img src="<?php echo $row['rutaImagen']; ?>" alt="<?php echo htmlentities($row['album']); ?>" /></a></li>
                <?php ?>
            </ul>
                    
        </section>
Prueba con eso, y dime si te va

Por cierto, buena página, te está quedando de pelos..

PD: Probé tratando de acceder en tu sección con el id #miDiv desde la URL, y me manda es hacia el tope (no entiendo por que), sin embargo podrías probar por posicionar otro div al rededor o cerca de donde cargas miDiv, para así posicionarlo directamente.. pienso que sería la solución más justa..
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.

Última edición por xIamAlex; 22/06/2012 a las 22:28
  #11 (permalink)  
Antiguo 23/06/2012, 03:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 1
De acuerdo Respuesta: Actualizar una variable PHP sin recargar la página.

Cita:
Iniciado por xIamAlex Ver Mensaje
Porque está al revés, el parámetro va primero que el identificador, prueba poniendo

?parametro=nombre_del_album#galeria

en vez de

#galeria?parametro=nombre_del_album.

saludos
gracias tio me ayudo esto de poner le ancla al final del parametro.

el ancla lo estoy usando en la misma pagina, este es el ancla que uso
<a name="ancla"></a>

este es la linea de codigo php donde lo uso
echo "<a href=\"?pag=".'1'."#ancla\" onclick=\"Pagina('1')\" class=\"afoto1\">&nbsp;</a>";

me salia mal cuando lo usaba de estas formas
echo "<a href=\"#ancla?pag=".'1'."\" onclick=\"Pagina('1')\" class=\"afoto1\">&nbsp;</a>";

echo "<a href=#ancla\"?pag=".'1'."\" onclick=\"Pagina('1')\" class=\"afoto1\">&nbsp;</a>";


veo que otros lo usan el ancla en un div y un id...

Muchas gracias de nuevo

si te preguntas lo del script es una galeria de fotos...

Etiquetas: variables
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:21.