Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 15-may-2008, 12:30   #1 (permalink)
fabryzzio ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
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.
fabryzzio está desconectado   Responder Citando
Antiguo 15-may-2008, 12:45   #2 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.473
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-may-2008 a las 22:56.
Panino5001 está desconectado   Responder Citando
Antiguo 15-may-2008, 12:49   #3 (permalink)
fabryzzio ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
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.
fabryzzio está desconectado   Responder Citando
Antiguo 15-may-2008, 12:52   #4 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.473
Re: Problema con recarga en div con ajax

Quizá convendría ver cómo estás intentándolo.
Panino5001 está desconectado   Responder Citando
Antiguo 15-may-2008, 13:06   #5 (permalink)
fabryzzio ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
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
fabryzzio está desconectado   Responder Citando
Antiguo 15-may-2008, 13:51   #6 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.473
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-may-2008 a las 22:57.
Panino5001 está desconectado   Responder Citando
Antiguo 15-may-2008, 18:12   #7 (permalink)
fabryzzio ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
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 .
fabryzzio está desconectado   Responder Citando
Antiguo 21-may-2008, 21:05   #8 (permalink)
manchilp ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 116
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...
manchilp está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:18.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93