Foros del Web » Programando para Internet » PHP »

quiero volver al archivo que llamo a este

Estas en el tema de quiero volver al archivo que llamo a este en el foro de PHP en Foros del Web. Bueno el problema que se me presenta no solo es de PHP (tiene algo de AJAX); ya lo comente en el foro de AJAX y ...
  #1 (permalink)  
Antiguo 05/01/2007, 11:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
quiero volver al archivo que llamo a este

Bueno el problema que se me presenta no solo es de PHP (tiene algo de AJAX); ya lo comente en el foro de AJAX y estamos aun sin poder solucionarlo.

Un poco de historia para entender: tengo un script que es llamado por varios script (archivos) la ultima linea de codigo que coloco es la de volver al archivo que lo llamo

Codigo:
Código PHP:
header("Location:".$_SERVER['HTTP_REFERER']); 
Esto anda barbaro si lo utilizo sin AJAX, al colocar una navegacion con AJAX se me presento el problema; como los archivos que llaman a este estan dentro de un contenedor (un pedazo de la pagina que se recarga a traves de Ajax en la pagina INDEX), en vez de cargarme solo el archivo en el contendor me carga toda la pagina index de nuevo en el contenedor (como si la que llamara sea la pagina INDEX y no el archivo que estaba cargado en el contenedor)
¿Como puedo hacer para que esto no suceda?, desde ya gracias y saludos

PD: si utilizo el navegador mozilla el problema no se me presenta; solo es en internet explorer.
  #2 (permalink)  
Antiguo 05/01/2007, 15:39
 
Fecha de Ingreso: octubre-2006
Mensajes: 13
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: quiero volver al archivo que llamo a este

bueno pienso que el problema que tienes es con el header,
intenta utilizar con javascript document.location.href = pagina; yo utilizo eso para redireccionar en lugar de header; espero me hallas entendido, sino pues escribe denuevo
  #3 (permalink)  
Antiguo 06/01/2007, 12:18
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
No esta bien, pero...

donde coloco el codigo de javascript que me mencionas, en el propio script de php; es esa parte que no entiendo bien, gracias y saludos
  #4 (permalink)  
Antiguo 06/01/2007, 13:20
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 19 años
Puntos: 1
Re: quiero volver al archivo que llamo a este

Cita:
Iniciado por jprolando Ver Mensaje
Bueno el problema que se me presenta no solo es de PHP (tiene algo de AJAX); ya lo comente en el foro de AJAX y estamos aun sin poder solucionarlo.

Un poco de historia para entender: tengo un script que es llamado por varios script (archivos) la ultima linea de codigo que coloco es la de volver al archivo que lo llamo

Codigo:
Código PHP:
header("Location:".$_SERVER['HTTP_REFERER']); 
Esto anda barbaro si lo utilizo sin AJAX, al colocar una navegacion con AJAX se me presento el problema; como los archivos que llaman a este estan dentro de un contenedor (un pedazo de la pagina que se recarga a traves de Ajax en la pagina INDEX), en vez de cargarme solo el archivo en el contendor me carga toda la pagina index de nuevo en el contenedor (como si la que llamara sea la pagina INDEX y no el archivo que estaba cargado en el contenedor)
¿Como puedo hacer para que esto no suceda?, desde ya gracias y saludos

PD: si utilizo el navegador mozilla el problema no se me presenta; solo es en internet explorer.
hola jprolando,

Lo que no entiendo es, para que necesitas volver o redireccionar la página si lo haces mediante ajax, tu seguramente estas enviado una petición tipo (javascript->php->javascript) y te devuelve una respuesta con el contenido requerido, sin tener que recargar o redireccionar la página.

puedes poner un ejemplo de tu código, para ver como trabajas con ajax, de este modo sería más fácil para todos entender cual es tu problema.
  #5 (permalink)  
Antiguo 08/01/2007, 05:19
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: quiero volver al archivo que llamo a este

Mira el codigo que tengo es el siguiente:

Código:
// Documento JavaScript
// 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)
}


//funcion para cambio de imagen
function cargaImagen (img_id, img_src, img_tit){
	var imagen_carro = document.getElementById (img_id);
	imagen_carro.src = img_src;
	imagen_carro.title = img_tit;
}


// 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){
//|| window.location.href.indexOf("http")==-1))
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
//la linea siguiente me carga funcion para cambiar imagen
//cargaImagen("estado_compra","/imagenes/agregado.gif", "Ya lo selecciono");
}
La siguiente pagina se carga en el contenedor:

Código PHP:
<?
    session_start
();
    include(
"config.php");
    
$link=conectar_BD();
?>

<html>
<head>
<title>Compras Productos</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body bgcolor="#ffffff">

<?
$registros 
4;

if (!
$pagina){
    
$inicio 0;
    
$pagina 1;
}
else{
    
$inicio = ($pagina 1) * $registros;
}
$carro=$_SESSION['carro'];
$result=mysql_query("SELECT * FROM $name_tb[productos] where codigoweb1=1 and codigoweb2=1"); 

$total_registros mysql_num_rows($result);

$result=mysql_query("SELECT * FROM $name_tb[productos] where codigoweb1=1 and codigoweb2=1 limit $inicio, $registros"); 

$total_paginas ceil($total_registros $registros);

    if (
$row mysql_fetch_assoc($result))
    {
        echo 
"<table border=0 cellpadding=8 cellspacing=0> \n";
        
$color='#FFFFFF';
            do {
            
//if ($carro[md5($row['id'])]['identificador']!=md5($row['id'])){ esta linea si la activo no se ven los articulos
                 
echo 
                     <tr bgcolor=\"$color\"> 
                           <td>"
;
                        include(
"pepe.php");
                echo 
"         
                        </td> 
                        <td>  
                            $row[articulo] 
                        </td> 
                          <td> 
                            12 x $ $row[p_12] 
                        </td>  
                          <td bgcolor=$color> 
                            <a href='contenidos/detalleFilma.php' target='_blank'><img src='/imagenes/$row[info]'> </a>
                        </td>
                        <td> 
                            <img src='/imagenes/$row[ruta]'> 
                        </td>
                        <td> 
                            <!--Esta es linea vacia para que no queden tan cerca--> 
                        </td>                                                     
                    </tr> 
                    "
;
            
//} 
                
$color=('#FFFFFF'==$color)?'FFFFFF':'#FFFFFF';
                } while (
$row mysql_fetch_assoc($result));
             
               echo 
"</table> \n"
        } else { 
            echo 
"¡ No se ha encontrado ningún registro !"
        }         

    if(
$total_registros) {
        echo 
"<center>";
        if((
$pagina 1) > 0) {
        
//'javascript:llamarasincrono(\"contenidos/productos_1_1.php\", \"menuizq\");'
            
echo "<a href='javascript:llamarasincrono(\"contenidos/ver_productos_1_1.php?pagina=".($pagina-1)."\", \"contenidos\");'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='javascript:llamarasincrono(\"contenidos/ver_productos_1_1.php?pagina=$i\", \"contenidos\");'>$i</a> "
        }
        
        if((
$pagina 1)<=$total_paginas) {
            echo 
"<a href='javascript:llamarasincrono(\"contenidos/ver_productos_1_1.php?pagina=".($pagina+1)."\", \"contenidos\");'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }



    
mysql_free_result($result); 
    
mysql_close($link);  
?>
</body>
</html>
Este archivo tiene un llamado a un archivo pepe.php que es el siguiente:

Código PHP:
<html>
    <a href="javascript:llamarasincrono('contenidos/agregacar.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>
</html>
Este ademas llama al presionar el boton Comprar a un archivo agregacar.php con el siguiente codigo:

Código PHP:
<?php 
session_start
();
extract($_REQUEST);

include(
'config.php');
$link conectar_BD();

if (!
$cantidad) {$cantidad=1;}

$qry=mysql_query("select * from $name_tb[productos] where id='".$id."'");
$row=mysql_fetch_array($qry);

$carro=$_SESSION['carro'];

$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'articulo'=>$row['articulo'],'contado_p'=>$row['contado_p'],'p_6'=>$row['p_6'],'p_12'=>$row['p_12'],'p_18'=>$row['p_18'],'id'=>$id);

$_SESSION['carro']=$carro;

header("Location:".$_SERVER['HTTP_REFERER']);
?>
Lo que quiero es que al hacer un clic en boton comprar se agrege al carro, y que quede en ese archivo; es mas intente hacer un cambio de la imagen de comprar a agregado (otro imagen que tengo); y tampoco pude llevar a cabo dicho cambio. Muchas gracias y saludos
  #6 (permalink)  
Antiguo 10/01/2007, 05:26
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: quiero volver al archivo que llamo a este

Sigo luchando con esto pero no doy en la tecla, bueno si alguien puede darme una mano sera bienvenida, gracias y saludos
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 07:04.