Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2014, 15:13
luchi2
 
Fecha de Ingreso: agosto-2014
Mensajes: 31
Antigüedad: 9 años, 8 meses
Puntos: 0
¿Cómo volver a poner un botón intacto después de realizar la petición?

Hola.
Tengo un botón echo en PHP (por el tema de las variables y algunas condiciones) que me ejecuta dos funciones: una para javascript('carrito') y otra para ejecutar AJAX('traerDatos'):
Código PHP:
Ver original
  1. echo "<div id='compra'><img src='botonComprar.gif' class='compra' onclick='carrito(\"$articulo\",$precio_articulo); traerDatos(\"$articulo\",$precio_articulo);'/></div>";

Si se hace clic sobre ese botón se ejecuta la función de AJAX cuyo código es el siguiente:

Código Javascript:
Ver original
  1. function nuevoAjax()
  2. {
  3.     var xmlhttp=false;
  4.     try
  5.     {
  6.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  7.     }
  8.     catch(e)
  9.     {
  10.         try
  11.         {
  12.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  13.         }
  14.         catch(E) { xmlhttp=false; }
  15.     }
  16.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
  17.  
  18.     return xmlhttp;
  19. }
  20.  
  21. function traerDatos(articulo, precio){
  22.     var capaCarrito=document.getElementById('compra');
  23.      var ajax=nuevoAjax();
  24.     capaCarrito.innerHTML="<center><img  src='AJAX/circuloAnimado.gif'></center>";
  25.     ajax.open("POST", "gestionarCarro.php", true);
  26.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  27.     ajax.send("articulo="+articulo+"&precio="+precio);
  28.     ajax.onreadystatechange=function(){
  29.     if(ajax.readyState==4 && ajax.status==200){
  30.        
  31. capaCarrito.innerHTML="<div id='compra'><img src='botonComprar.gif' class='compra' onclick='carrito(\"$articulo\",$precio_articulo); traerDatos(\"$articulo\",$precio_articulo);'/></div>";
  32.     }
  33. }
  34.  
  35. }

Se comunica bien con PHP, hace lo que tiene que hacer, mientras que lo hace, el usuario puede ver el 'circuloAnimado.gif', pero cuando termina, no me coloca el mismo botón de forma que una vez echo, aunque se vuelva a dar clic ni ejecuta la función de Javascript ni la da AJAX. Es la primera vez que hago esto, pero ¿cómo se puede volver a poner el mismo botón que estaba antes de la imagen de carga?.
Gracias.