Foros del Web » Programando para Internet » PHP »

Problemas con PHP - AJAX

Estas en el tema de Problemas con PHP - AJAX en el foro de PHP en Foros del Web. Tengo una consulta que anda perfectamente en php, estoy intentando meterme el mundo de Ajax, y todo funciona perfecto con frames y php; pero cuando ...
  #1 (permalink)  
Antiguo 29/11/2006, 14:03
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Problemas con PHP - AJAX

Tengo una consulta que anda perfectamente en php, estoy intentando meterme el mundo de Ajax, y todo funciona perfecto con frames y php; pero cuando quiero interactuar con ajax - php hay cosas de la consulta que no me despliega (creo que el problema viene por la actualizacion de la URL).

Pueden decirme cual es el problema; los codigos los puedo pasar si lo quieren ver el de php? o el de Ajax?, o los dos, bueno gracias a todos

Saludos
  #2 (permalink)  
Antiguo 29/11/2006, 14:33
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 5 meses
Puntos: 0
Creo que no te explicaste

Por que no pones tu codigo de PHP y AJAX
  #3 (permalink)  
Antiguo 29/11/2006, 14:51
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Aqui va el codigo

el codigo PHP (fuera de ajax anda barbaro)

Código PHP:
<?php 
session_start
();
$carro=$_SESSION['carro'];
?>

<html>
<head>
<title>PRODUCTOS AGREGADOS AL CARRITO</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
.tit {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
    color: #FFFFFF;
}
.prod {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
    color: #333333;
}
h1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 20px;
    color: #990000;
}
-->
</style>
</head>

<body>

<h1 align="center">Esta es su compra hasta el momento</h1>
<?php 
if($carro){
//si el carro no está vacío, mostramos los productos
?>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr bgcolor="#333333" class="tit"> 
    <td width="105">Articulo</td>
    <td width="207">Precio</td>
    <td colspan="2" align="center">Cantidad de Unidades</td>
    <td width="100" align="center">Borrar</td>
    <td width="159" align="center">Actualizar</td>
  </tr>
  <?php
  $color
=array("#ffffff","#F0F0F0");
  
$contador=0;
  
//las 2 líneas anteriores sirven para hacer una tabla con colores alternos
  
$suma=0;
  
//antes de recorrer todos los valores de la matriz carro, ponemos a cero la variable $suma,
  //en la que iremos sumando los subtotales del costo de cada item por la cantidad de unidades que se especifiquen
   
foreach($carro as $k => $v){
   
//recorremos la matriz que tiene todos los valores del carro, calculamos el subtotal y el total
   
$subto=$v['cantidad']*$v['p_12'];
   
$suma=$suma+$subto;
   
$contador++;//este es el contador que usamos para los colores alternos

    
?>
  <form name="jp<?php echo $v['identificador'?>" method="post" action="agregacar.php?<?php echo SID ?>" id="jp<?php echo $v['identificador'?>">
    <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'> 
      <td><?php echo $v['articulo'?></td>
      <td><?php echo $v['p_12'?></td>
      <td width="43" align="center"><?php echo $v['cantidad'?></td>
      <td width="136" align="center"> 
        <input name="cantidad" type="text" id="cantidad" value="<?php echo $v['cantidad'?>" size="8">
        <input name="id" type="hidden" id="id" value="<?php echo $v['id'?>"> </td>
      <td align="center"><a href="borracar.php?<?php echo SID ?>&id=<?php echo $v['id'?>"><img src="trash.gif" width="12" height="14" border="0"></a></td>
      <td align="center"> 
        <input name="imageField" type="image" src="actualizar.gif" width="20" height="20" border="0"></td>
  </tr></form>
  <?php 
  
//por cada item creamos un formulario que submite a agregar producto y un link que permite eliminarlos
  
}?>
</table>
<div align="center"><span class="prod">Total de Artículos: <?php echo count($carro);
//el total de items va a ser igual a la cantidad de elementos que tenga la matriz $carro, valor que obtenemos con la
//función count o con sizeof
?></span> 
</div><br>
<div align="center"><span class="prod">Total: $<?php echo number_format($suma,2);
//mostramos el total de la variable $suma formateándola a 2 decimales
 
?></span> 
</div><br>
<div align="center"><span class="prod">Continuar la selección de productos</span> 
  <a href="centro.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a> 
</div>
<div align="center"><span class="prod">Confirmar Compra</span> 
  <a href="agregadatos.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a> 
</div>
 
<?php }else{ ?>
<p align="center"> <span class="prod">No hay productos seleccionados</span> <a href="centro.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a> 
  <?php }?>
</p>
</body>
</html>

El codigo Ajax es:

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)
}
// 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
}
  #4 (permalink)  
Antiguo 29/11/2006, 15:09
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 5 meses
Puntos: 0
Que tal


creo que te falta mas codigo de ajax, pero de entrada veo que cuando mandas llamar document.getElementById(id_contenedor).

Este deberia ir asi

document.getElementById("id_contenedor").

checate el resto de ls instrucciones de JavaScript, la sintaxis y veras que con poco depaciencia encuentras los detalles.

SI tienes un problema con gusto te ayudo
  #5 (permalink)  
Antiguo 29/11/2006, 15:28
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Foro AJAX?
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 16:49.