{RESUELTO}Cargar documento dentro de una celda, mediante javascript+jquery

Iniciado por |Miguel|, 26 Marzo 2012, 20:08 PM

0 Miembros y 1 Visitante están viendo este tema.

|Miguel|

Bueno, pues eso, básicamente, xD

Que llevo un par de días intentando hacer una cosa... tengo una tabla (más o menos) así:
___________________________
|      |       |           |         |        |
___________________________
|                                              |
|                                              |
|                                              |
|                                              |
|                                              |
___________________________
|                                              |
|                                              |
___________________________

Donde las celdas de arriba son un menú, la del centro contiene un iframe para cargar lo que quiero ver y lo de abajo es un pie de página sin más.

La función que uso para cargar lo que quiero en el iframe es esta:
Código (javascript) [Seleccionar]

function carga(pagina){
$("#contenido").load(pagina);
}


Y la llamada (he probado esas dos formas para hacer la llamada):
Código (html4strict) [Seleccionar]

<table id="tab" width="100%" align="center" border="1">
  <tr>    
       <td onclick="carga('news.html');" style="cursor: pointer">
        <img src="../img/home.png" alt="Home" />
       </td>
       <td style="cursor:pointer">
        <a href="javascript:carga('perfil');">Mi perfil</a>
    </td>
  </tr>
</table>


Pero no hace nada... ¿alguien sabe dónde he metido la pata?

El código del irame es:
Código (html4strict) [Seleccionar]

<iframe frameborder="0" id="contenido" width="100%" scrolling="auto">
                           
           </iframe>

Spider-Net

Pues sí, o usas ajax o usas un iframe, pero no mezcles las dos cosas xD

En vez de un iframe usa un div: <div id="contenido"></div> y debe funcionar bien.

|Miguel|

#2
He usado un iframe para que solo esa celda de la tabla, la del contenido, tenga scroll. ¿puedo lograr ese efecto con el div?

EDITO:

He cambiado el iframe por:
Código (html4strict) [Seleccionar]

<div id="contenido" width="100%">
                           
       </div>

Y no hace nada.

EDITO 2:
He probado esto, y me hace el alert pero no carga nada... asíque el fallo tiene que estar en la línea del load... :S
Código (javascript) [Seleccionar]

function carga(pagina){
$("#contenido").load(pagina);
alert('cargada');
}

Spider-Net

No carga nada porque estás pasando como parámetro de la página el nombre a secas, sin extensión:
Código (html4strict) [Seleccionar]
<a href="javascript:carga('perfil');">Mi perfil</a>

Y luego en jquery tampoco se lo añades, lo que haces es:

Código (javascript) [Seleccionar]
function carga(pagina){
$("#contenido").load(pagina);
}


Tienes alguna página que se llame perfil a secas?, lo dudo. Se llamará perfil.html o perfil.php. Por lo tanto yo lo haría así:

Código (javascript) [Seleccionar]
function carga(pagina){
$("#contenido").load(pagina+".html");
}


o ".php" en caso de que sea php lo que vas a cargar. Por otro lado para que el div tenga scroll en la propiedad css del div contenido pon la propiedad overflow-y: scroll.

Saludos.

|Miguel|

Cita de: Spider-Net en 26 Marzo 2012, 22:09 PM
No carga nada porque estás pasando como parámetro de la página el nombre a secas, sin extensión

Error mío, he copiado una versión antigua. Sí que tengo puesta la extensión en el código.

Lo del scroll, perfecto, gracias.

Spider-Net

¿Y poniendo la extensión tampoco te carga nada? ¿Puedes poner tu código actual?

|Miguel|

El trocito de la llamada es este:

Código (javascript) [Seleccionar]

<a href="javascript:carga('perfil.html');" target="contenido">Mi perfil</a>


función:
Código (javascript) [Seleccionar]

function carga(pagina){
$("#contenido").load(pagina);
//alert('cargada '+pagina);
}


y capa:
Código (javascript) [Seleccionar]

<div id="contenido">contenido</div>


Si quieres pongo todo el resto, pero creo q con eso es suficiente.

Spider-Net

el target="contenido" en el enlace sobra. No sé si será eso, pero debe de ser porque lo demás está correcto.

|Miguel|

Se me olvidó, de una prueba con el iframe, pero aún quitándolo da igual... ademas tengo esta otra llamada:
Código (html4strict) [Seleccionar]
<body onload="altoFrame(); carga('news.html')">
Que se me olvidó ponerla antes, aunque es lomismo que las otras practicamente, pero no funciona en ninguna. Sé que hace la llamada porque he descomentado el alert, pero no carga.

Spider-Net

Pues como no se te haya olvidado incluir el archivo de jquery, o haya algún problema de ese tipo la verdad es que no lo entiendo porque lo demás parece estar todo bien.