Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2007, 11:47
jprolando
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 18 años, 3 meses
Puntos: 0
Problemas con la carga de pagina en Ajax

Tengo problemas con la actualización de un contenido, de un contenedor de una pagina que trabaja con ajax

Después de hacer unos cambios me di cuenta que no se esta actualizando la pagina.

Explicando un poco mejor.

Tengo una pagina Index que carga otra pagina (por medio de ajax), en un contenedor de nombre contenidos. Dicha página es la ver_productos_1_1.php.

Esta página tiene un include a otra página (esta pagina ver_1_1.php) que hace lo siguiente:

La pagina ver_1_1.php carga a su vez otra que me agrega los datos (agregacar_1_1.php) en una sesión de PHP (la pagina dos), esta que agrega no tiene echo y la ultima línea es un header a la pagina ver_productos_1_1.php.

Poniendo un poco de código para entender.
Coloco poco código para no marear; si ven que es necesario mas agrego todo.

Pagina ver_productos_1_1.php:

Código PHP:
echo 
<tr bgcolor=\"$color\"> 
<td>"
;
include(
"ver_1_1.php"); 

El include hace referencia a esta página (ver_1_1.php)

Código PHP:
<html>
<?php if($carro[md5($row['id'])]['identificador']!=md5($row['id'])){?>
    <a href="javascript:llamarasincrono('contenidos/agregacar_1_1.php?<?php echo SID ?>&id=<?php echo $row['id'];?>', 'contenidos');">
    <img id="estado_compra" src="/imagenes/comprar.gif" border="0" title="Agregar al Carrito"></a>
<?php }else{?>
    <a href="javascript:llamarasincrono('contenidos/agregacar_1_1.php?<?php echo SID ?>&id=<?php echo $row['id'];?>', 'contenidos');">
    <img id="estado_compra" src="/imagenes/agregado.gif" border="0" title="Agregar al Carrito"></a>
<?php }?>
</html>
Pagina agregacarr_1_1.php (no tiene ningun echo) hace un header de nuevo a ver_productos_1_1.php

Código PHP:
header("Location:<a href='javascript:llamarasincrono('contenidos/ver_productos_1_1.php', 'contenidos');'>");
?> 
Funcion Ajax

Código:
// Esta función cargará las 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
}

Me doy cuenta que no esta actualizando la pagina ver_productos_1_1.php a traves de la funcion Ajax, si yo actualizo manualmente cambia la imagen perfectamente, el problema para mi esta en que no se devuelve nada a Ajax desde el archivo agregacar_1_1.php; no se a mi; pero expongo para que me puedan dar alguna idea, si tienen alguna otra bienvenida sera, gracias.