Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con recarga en div con ajax

Estas en el tema de Problema con recarga en div con ajax en el foro de Frameworks JS en Foros del Web. Hola a todos soy nuevo en la pagina y quiera si me puden ayudar con un tema que me tiene loco. Cuando cargamos una pagina ...
  #1 (permalink)  
Antiguo 15/05/2008, 12:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Problema con recarga en div con ajax

Hola a todos soy nuevo en la pagina y quiera si me puden ayudar con un tema que me tiene loco. Cuando cargamos una pagina con ajax en una capa funciona correctamente pero mi duda es cuando tenemos que llamar desde la misma pagina que esta cargada en la capa a ptra y se cargue en la misma capa no me funciona, tengo todas las funciones js y cssen la pagina padre y ademas en la que se carga tambien pero no funciona.
  #2 (permalink)  
Antiguo 15/05/2008, 12:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Problema con recarga en div con ajax

No sé si entendí bien, pero si lo que necesitás es ejecutar código javascript asignado desde un responseTetx al innerHTML de una capa, tenés primero que evaluar los scripts para que no se comporten como texto simple, que es lo que sucede si no hacés eso.
Por ahí hay un how to de cómo lograrlo. Otra manera es aplicar la siguiente función, al recibir el responseText:
Código PHP:
<script>
function 
SetContainerHTML(id_contenedor,responseText)
{
mydiv document.getElementById(id_contenedor);
//reemplazando por code salvamos bug de Explorer 7
responseText=responseText.split('SCRIPT').join('code')
mydiv.innerHTML responseText;
var 
elementos mydiv.getElementsByTagName('code');
for(
i=0;i<elementos.length;i++) {
var 
elemento elementos[i];
nuevoScript document.createElement('script');
nuevoScript.text elemento.innerHTML;
nuevoScript.type 'text/javascript';
if(
elemento.src!=null && elemento.src.length>0)
{
nuevoScript.src elemento.src;}
elemento.parentNode.replaceChild(nuevoScript,elemento);
}
}

</script> 

Última edición por Panino5001; 15/05/2008 a las 22:56
  #3 (permalink)  
Antiguo 15/05/2008, 12:49
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Problema con recarga en div con ajax

Gracias lo que yo pregunto es cargo una pagina en una capa con ajax pero si esa pagina cargada llama a otra quiero que se cargue en la misma capa con ajax y no puedo gracias.
  #4 (permalink)  
Antiguo 15/05/2008, 12:52
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Problema con recarga en div con ajax

Quizá convendría ver cómo estás intentándolo.
  #5 (permalink)  
Antiguo 15/05/2008, 13:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Problema con recarga en div con ajax

Uso esta funcion js para cargar las paginas a la paginas

function llamarasincrono (url, id_contenedor)
{
var pagina_requerida = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest ();
} else if (window.ActiveXObject)
{
// pero si es IE
try
{
pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
}
catch (e)
{
// en caso que sea una versión antigua
try
{
pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function ()
{
// función de respuesta
cargarpagina (pagina_requerida, id_contenedor);
}
pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}

cuando la cargo bien pero despues no se como hacer que si la pagina llama a otra que se cargue en la misma pagina
  #6 (permalink)  
Antiguo 15/05/2008, 13:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Problema con recarga en div con ajax

A ver con un ejemplo:
Página 1 (donde se carga todo en una capa de id pp):
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
function $(
id){return document.getElementById(id);}
function 
http(){
    if(
window.XMLHttpRequest){
        return new 
XMLHttpRequest();    
    }else{
        try{
            return new 
ActiveXObject('Microsoft.XMLHTTP');
        }catch(
e){
            
alert('nop');
            return 
false;
        }    
    }
}

function 
SetContainerHTML(id_contenedor,responseText)
{
mydiv document.getElementById(id_contenedor);
//reemplazando por code salvamos bug de Explorer 7
responseText=responseText.split('SCRIPT').join('code')
mydiv.innerHTML responseText;
var 
elementos mydiv.getElementsByTagName('code');
for(
i=0;i<elementos.length;i++) {
var 
elemento elementos[i];
nuevoScript document.createElement('script');
nuevoScript.text elemento.innerHTML;
nuevoScript.type 'text/javascript';
if(
elemento.src!=null && elemento.src.length>0)
{
nuevoScript.src elemento.src;}
elemento.parentNode.replaceChild(nuevoScript,elemento);
}
}
function 
cargarPagina(url,contenedorId){
var 
H=http();
H.open('get',url,true);
H.onreadystatechange=function(){
    if(
H.readyState==4){
        
SetContainerHTML(contenedorId,H.responseText);
        
H.onreadystatechange=null;
    }else{
        $(
contenedorId).innerHTML='cargando...';
    }
}
H.send(null);
}
window.onload=function(){
    
cargarPagina('pagina2.php','pp');
}
</script>  
</head>

<body>
<div id="pp"></div>
</body>
</html> 
Pagina 2:
Código PHP:
<?php 
ob_start
('cod');
function 
cod($b){return utf8_encode($b);}
?>
Soy p&aacute;gina 2 <a href="javascript:cargarPagina('pagina3.php','pp')">cargar p&aacute;gina 3 </a>
<?php 
ob_end_flush
();
?>
Pagina 3:
Código PHP:
<?php 
ob_start
('cod');
function 
cod($b){return utf8_encode($b);}
?>
<!-- en mayúscula evitamos bug de explorer 7 -->
<SCRIPT>
function probar(mensaje){alert(mensaje);}
</SCRIPT>
soy página 3 <a href="javascript:probar('hola!')">probar javascript</a>
<?php 
ob_end_flush
();
?>

Última edición por Panino5001; 15/05/2008 a las 22:57
  #7 (permalink)  
Antiguo 15/05/2008, 18:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con recarga en div con ajax

Panino5001 Muchisimas gracias resolvi el problema que plantee pero ahora el problema es hacer atras con estos js en ajax ya que nolo he podido hacer ni en mis js ni con los que me pasaste .
  #8 (permalink)  
Antiguo 21/05/2008, 21:05
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Problema con recarga en div con ajax

justamente , una de las pocas desventajas que tiene AJAX es el hecho de no poder volver atras...
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 01:46.