Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Cargar contenido en un DIV con función js

Estas en el tema de Cargar contenido en un DIV con función js en el foro de Jquery en Foros del Web. Hola! Estoy haciendo un sitio dinámico con PHP. Lo que necesito es que al seleccionar un link el contenido lo cargue dentro de un div. ...
  #1 (permalink)  
Antiguo 09/08/2013, 09:46
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 11 meses
Puntos: 1
Cargar contenido en un DIV con función js

Hola!
Estoy haciendo un sitio dinámico con PHP.
Lo que necesito es que al seleccionar un link el contenido lo cargue dentro de un div.

Ya lo logre con uno queda así:

Código Javascript:
Ver original
  1. function cargaContenido() {
  2.     $('#contenido').load('documento.php');
  3.   }

y mi link

Código PHP:
Ver original
  1. <a href="#" onclick="cargaContenido();">Cargar</a>

pero tengo varios links en mi pagina y se me hace tedioso hacer eso para cada link a parte de que no creo que sea funcional por lo que he estado buscando la forma de hacer una función en que todos los links me los cargue en el div

Tengo esto

Código Javascript:
Ver original
  1. document.getElementsByTagName('a').onclick = cargaContenido;
  2.   function cargaContenido() {
  3.       $('#contenido').load(href);  
  4.   }

Lo que me falta es leer el href de cada link pero aún no se como.

Mi link ya lo deje normal

<a href="documento.php">Cargar</a>

alguna ayuda
  #2 (permalink)  
Antiguo 09/08/2013, 10:28
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Cargar contenido en un DIV con función js

Hola,

Asumiendo que deseas que sean todos los link de tu pagina, ponemos algo asi

Código:
<script type="text/javascript">
   
    $(document).ready(function()
    {
        $("a").on("click", function(event)
        {
            //Cancela el evento del href, por defecto al pinchar en un link
            // te envia a este, con esto evitamos que ejecute el link
            event.preventDefault();            

           //Cargamos el contenido del enlace
            $('#contenido').load(this.href);
        });
    });

</script>
Y los link

Código:
<div id="contenido"></div>
            
<a href="count.php">Cargar</a>
<a href="count1.php">Cargar1</a>
Ahora si quieres que sea para un determinado sector de tu web puedes envolverlo en un div y ejecutar solo eso

Código:
<div id="divHref">
            
      <a href="count.php">Cargar</a>
     <a href="count1.php">Cargar1</a>
</div>
Y solo cambiaria esto en nuestra funcion JS, le decimos que dentro del div con id "divHref", cargue los link

Código:
       $("#divHref a").on("click", function(event)
Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)
  #3 (permalink)  
Antiguo 09/08/2013, 12:15
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cargar contenido en un DIV con función js

Muchas gracias fhederico pero no me ha funcionado

Me envía a otra página, no me lo esta cargando en el div.

Como yo lo había intentado en un principio me funcionaba
Código Javascript:
Ver original
  1. function cargaContenido() {
  2.     $('#contenido').load('documento.php');
  3. }

Coloque una función para cada link. En realidad en la página principal tengo5 links y funciona bien. Me carga cada contenido de cada página que llamo en el div CONTENIDO. El problema resulta cuando interactuo con las páginas que me carga. Ya que estas también tienen links e incluso formularios, etc. Una vez que quiero continuar enviando un formulario o yendo a un link normal ya no me lo carga en el DIV si no me envia a su página.

Es por eso que estoy intentando que todos lo links me los cargue en contenido. Ya hice pruebas colocando esa función con algunos links que tengo en los sitios y me funciona pero como te comento son muchos y no quiero hacer eso con todos.

Tendrás alguna sugerencia???
  #4 (permalink)  
Antiguo 09/08/2013, 13:06
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Cargar contenido en un DIV con función js

Puedes colocar tu codigo o alguna URL donde pueda verlo en vivo en y en directo?

Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)
  #5 (permalink)  
Antiguo 09/08/2013, 15:48
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cargar contenido en un DIV con función js

Perdon por tardar pero no hallaba donde subirlo. A penas m dieron acceso jeje
Ya mas o menos resolvi mi problema

Coloque este codigo dentro de un js y a todas las paginas le meti que incluyera el js.

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.      $("a").each(function(){
  3.         var href = $(this).attr("href");
  4.         $(this).attr({ href: "#"});
  5.         $(this).click(function(){
  6.            $("#contenido").load(href);
  7.         });
  8.      });
  9.   });

Todos los links ya se muestran dentro del div CONTENIDO Pero de repente se traba, se queda cargando y ya no me muestra nada. ¿A qué se deberá?

También me queda por resolver como hacer para que todos los formularios al enviarlos me lleve el resultado al mismo DIV

El sitio se encuentra en residencelheritage.com/prueba para que entiendas de lo que hablo

De antemano gracias por tu ayuda
  #6 (permalink)  
Antiguo 09/08/2013, 20:27
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Cargar contenido en un DIV con función js

Hola,

Primero que todo, actualiza tu archivo JQuery, estas ocupando la version 1.4 y ya vamos en la 1.9

Código:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Sobre tu codigo, puse lo que te habia dicho originalmente, con la unica salvedad que como lo llamamos por el class debe ir .menu, si lo llamamos por el ID debe ser #menu, por lo tanto ocupe esto

Código:
 $(document).ready(function()
    {
        $(".menu a").on("click", function(event)
        {
            //Cancela el evento del href, por defecto al pinchar en un link
            // te envia a este, con esto evitamos que ejecute el link
            event.preventDefault();            

           //Cargamos el contenido del enlace
            $('#contenido').load(this.href);
        });
    });
Ya que tu otra funcion lo que hacia era cambiar el href, por lo tanto si intentabas volver a cargar la pagina te cargaba un @2013

No estoy seguro, asi que tendras que confirmarme esto, cuando cargas la pagina por ejemplo "usuarios.php" esta pagina tiene solo el contenido? es decir, no contiene etiquetas html o body cierto? ya que solo estas cargando el contenido de dicha pagina por lo tanto no deberias ponerlo como una pagina web, no se si me explico.

Sobre tu otra pregunta, cuando cargas una web por ajax, y deseas que por ejemplo guarde los datos cuando estas creando un usuario nuevo deberas ocupar AJAX para que ejecute tu consulta sin recargar la pagina, esto obviamente deberia ir dentro de la pagina que estas cargando, es decir, si estas creando un nuevo usuario y cargas la pagina por ejemplo "usuario_new" dentro de esta debera ir la consulta por AJAX.

Por ultimo, tienes comentarios HTML dentro de los JS, esto te producira error ya que no los reconoce, por ejemplo

Código:
<!-- Función que confirma si desea eliminar un registro -->
A se me olvidaba, existe un complemento para firefox, llamado firebug, es MUY util y te permite ver los errores que se generan entre muchas funciones, buscalo.

Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)
  #7 (permalink)  
Antiguo 10/08/2013, 09:18
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cargar contenido en un DIV con función js

Muchas gracias por ayudarme con esto y por tu tiempo! De verdad que ya me estaba haciendo líos.

Probare el código que me has mandado y te avisare si funciona. Solamente que esto solo afectara al menu ¿cierto? Lo que sucede es que las otras páginas cargadas también tienen links y eso no afectará a estos.

Asi es, las páginas cargadas solo tienen contenido php, ninguna etiqueta html.

Muchas gracias por el tip para mis formularios. Buscare algo relacionado con AJAX

En cuanto a los comentarios en los JS los coloque para que no me olvidará de lo que hacia mi función. No crei que causara problema. Gracias por el dato

Saludos
  #8 (permalink)  
Antiguo 10/08/2013, 12:32
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cargar contenido en un DIV con función js

Mira que ya me han funcionado bien los enlaces con el tip que me diste pero de repente se me traba. No sea si sea debido al servidor o al sistema o que el script tarde mucho en pensar. Pero bueno ya lo veré más adelante.

Por ahora ya he empezado con el formulario de agregar usuarios

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.   $(document).ready( function() {
  3.     $("#registro").click( function() { // Con esto establecemos la acción por defecto de nuestro botón de enviar
  4.       if(validaAltaUsuarios()){ // Primero validará el formulario
  5.         $.post("inc/users_alta.php",$("#formdata").serialize(),function(res){
  6.             $("#formulario").fadeOut("slow");   // Hacemos desaparecer el div "formulario" con un efecto fadeOut lento
  7.                 if(res == 1){
  8.                     $("#existe").delay(500).fadeIn("slow");
  9.                 } else  {
  10.                     $("#fracaso").delay(500).fadeIn("slow");
  11.                 }
  12.             });
  13.         }
  14.     });    
  15.   });
  16. </script>

Coloco este script para validar mi formulario y cuando este correcto envio por POST mis datos del formulario. Pero no me deja validar por completo. Al momento de darle aceptar cuando me arroja el mensaje me manda a la pagina principal. Lo mismo ocurre cuando coloco todos los datos y no me agrega nada.
  #9 (permalink)  
Antiguo 10/08/2013, 12:35
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Cargar contenido en un DIV con función js

Hola,

Hablemos esto por privado, ya que ahora ya son otros los errores y no terminaremos nunca por aqui xD

Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)

Etiquetas: divs, javascript, javascript+php
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 12:13.