Autor Tema: [Duda] Cargar con Ajax  (Leído 1668 veces)

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
[Duda] Cargar con Ajax
« en: 31 de Enero de 2010, 15:18:55 pm »
Hola, phperos/as:

Estaba probando, por que encontré un codigo para hacer webs al estilo modular (sin tener que cargar todo el contenido), con AJAX.

Me puse a probar, y es 100 veces mas rápido, y seguí transformando toda mi web para hacerla de esa manera.
PERO, me encontré con un problema que no sé solucionar:
El codigo funciona diciendole que página deseas cargar y en que contenedor, puesto que yo tengo algunos links en una página incluida mediante PHP [include();] probé a ver si funcionaba sin mucho ánimo de que funcionara.
Y estaba en lo cierto, el codigo, al estar incluido, no carga el link en el contenedor (que está en la principal).

Intentaré hacerles un ejemplo:

index.php:
Código: [Seleccionar]
<head>
 <script>
  CODIGO AJAX
 </script>
</head>
<body>
 <a href="javascript:ajaxpage('test.html', 'centro');">Test</a>
 <div id="centro">
  Aquí se cargará el contenido
 </div>
 <?=include('menu.php');?>
</body>
menu.php
Código: [Seleccionar]
<head>
 <script>
  CODIGO AJAX
 </script>
</head>
<body>
 <a href="javascript:ajaxpage('test2.html', 'centro');">Test2</a>
 <a href="javascript:ajaxpage('test3.html', 'centro');">Test3</a>
 <a href="javascript:ajaxpage('test4.html', 'centro');">Test4</a>
</body>

El codigo AJAX es el siguiente:
Código: [Seleccionar]
<script type=text/javascript>

/***********************************************
* Script para carga de páginas mediante AJAX
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}

</script>

Realmente no se que hace por que no entiendo mucho de JS y AJAX... :S
Si me pudieran explicar como hacer que funcione, les doy un Karma...
GRACIAS de antemano
« Última modificación: 31 de Enero de 2010, 15:23:13 pm por judoka »

Comunidad PHPeros

[Duda] Cargar con Ajax
« en: 31 de Enero de 2010, 15:18:55 pm »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #1 en: 31 de Enero de 2010, 16:06:38 pm »
Pon el enclude dentro del <div id="centro">...
Y usa el codigo que puso G2K, (Busca por tutorial ajax usando responseText o algo parecido)

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #2 en: 31 de Enero de 2010, 16:14:14 pm »
Pon el enclude dentro del <div id="centro">...
Y usa el codigo que puso G2K, (Busca por tutorial ajax usando responseText o algo parecido)
Hola West, gracias por tu respuesta, pero es que el include, va por su cuenta, debe estar fuera... puesto que es.. como un panel ;) y los contenidos que cargo en el <div id="CENTRO"> es el panel del centro..

Lo de G2K es como este que uso, no? :)
Muchas gracias.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #3 en: 31 de Enero de 2010, 16:18:50 pm »
Aah, pensé que era la página principal...

Pero el de G2K funciona mejor, creo...

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #4 en: 31 de Enero de 2010, 16:32:26 pm »
Aah, pensé que era la página principal...

Pero el de G2K funciona mejor, creo...
estoy leyendo lo comentarios por que copie el codigo del post principal y no funciona.. :S

EDIT: cambie lo de "ver_pagina("....php")"   a "ver_pagina('aasd.php')" y sigue sin funcionar :S
« Última modificación: 31 de Enero de 2010, 16:35:29 pm por judoka »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #5 en: 31 de Enero de 2010, 16:48:16 pm »
A ver no entendí, quieres incluir un panel fuera del div?

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #6 en: 31 de Enero de 2010, 16:51:36 pm »
A ver no entendí, quieres incluir un panel fuera del div?
Lo tengo ya incluido mediante PHP fuera del div, y quiero que desde ese archivo también me carguen datos en el div mediante el AJAX.
P.D: si tienes Tuenti, dime tu nombre y hablamos mas fluido por ahí si te parece. ;)

EDIT: SOLUCIONADO, ERROR ENCONTRADO.
« Última modificación: 31 de Enero de 2010, 17:03:28 pm por judoka »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #7 en: 31 de Enero de 2010, 18:49:25 pm »
no tengo tuenti, en fin podrias decir el error (por si otros usuarios tienen la misma duda)?

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #8 en: 31 de Enero de 2010, 18:58:01 pm »
No entiendo que quieres hacer :S porfavor explícame un poco mas y asi te puedo ayudar ;D

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #9 en: 01 de Febrero de 2010, 00:34:17 am »
no tengo tuenti, en fin podrias decir el error (por si otros usuarios tienen la misma duda)?
me da corte y leugo west me llama de burro pa' arriba (que lo soy pero bueno.. :S)

era error de mi code, algo asi como:

<a href="javascript:ajaxpage('modulo/bla', 'centro');">Pagina</a>

vamos que me olvide ponerle la extensión, por eso no cargaba :)

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Cargar con Ajax
« Respuesta #10 en: 01 de Febrero de 2010, 14:50:41 pm »
xD Son cosas que pasan, y no te llamo burro, que a mí también me pasa xDD