Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2009, 12:05
Avatar de OsSk4R
OsSk4R
 
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 2 meses
Puntos: 74
Problema al insertar datos con Ajax y PHP

Buenas,
Bueno, de ajax se muy muy poco, me estoy iniciando, hablando claro, llevo dos dias como aquel que dice jeje.

La cuestion es que tengo un sistemilla de comentarios (bueno, montandolo) y bueno, quiero insertar los datos del formulario de comentarios utilizando ajax (me ha enamorado )

El problema es que yo lo unico que se hacer con ajax es recargar una pagina dentro de otra, es sencillo, pero claro, como he dicho, ahora quiero insertar datos en mySQL

Comento...

El formulario de comentarios, lo voy a obviar un poco porque, eso no tiene nada especial, lo que si voy a poner es el principio del mismo para que veais como lo hago:
Código formulario:
Ver original
  1. <form name="nuevo_comentario" action="" onSubmit="PaginaEnviarComentarios(); return false">

En segundo lugar, el archivo ajax, que es donde seguro esta el problema, pues lo he hizo haciendo basandome en el que utilizo para recargar una pagina dentro de otra mediante GET, y buscando asi un poco de info por la web...:

Código ajax:
Ver original
  1. function objetoAjax(){
  2.  var xmlhttp=false;
  3.   try{
  4.    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.   }catch(e){
  6.    try {
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.    }catch(E){
  9.     xmlhttp = false;
  10.    }
  11.   }
  12.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  13.    xmlhttp = new XMLHttpRequest();
  14.   }
  15.   return xmlhttp;
  16. }
  17.  
  18. function PaginaEnviarComentarios(){
  19.  
  20.  divContenido = document.getElementById('contenido');
  21.  
  22.  ajax=objetoAjax();
  23.  
  24.   ajax.open("POST", "procesar_comentarios.php",true);
  25.  divContenido.innerHTML= '<img src="cargando.gif">';
  26.  ajax.onreadystatechange=function() {
  27.   if (ajax.readyState==4) {
  28.  
  29.    divContenido.innerHTML = ajax.responseText
  30.   }
  31.  }
  32.   ajax.send("id_usuario="+id_usuario+"&id_articulo="+id_articulo+"&comentario="+comentario)
  33.  
  34.  ajax.send(null)
  35. }

Y este el archivo procesar_comentarios, o sea, el que supuestamente recibe las variables y las inserta:
Código procesar_comentarios:
Ver original
  1. <?php
  2.  
  3. include "config.php";
  4.  
  5.  
  6.    $id_usuario=$_POST['id_usuario'] = trim($_POST['id_usuario']);
  7.    $id_articulo=$_POST['id_articulo'] = trim($_POST['id_articulo']);
  8.    $comentario=$_POST['comentario'] = trim($_POST['comentario']);
  9.  
  10.    
  11.  
  12. $InsertarComentario="INSERT INTO comentarios (id_usuario, id_articulo, comentario) values ('$id_usuario', '$id_articulo', '$comentario')";
  13. $resultadoInsertarComentario=mysql_query($InsertarComentario, $conexion) or die (mysql_error());
  14. if($id_usuario==NULL|$id_articulo==NULL|$comentario==NULL) {
  15.     echo "Exito!";
  16. }else{
  17.     echo "Error!!";
  18. }
  19.  
  20. ?>

Si, ya se que debo de mejorar la seguridad... pero bueno, eso mas adelante, lo estoy programando ... ¬¬

¿Cual es el error? que al darle a enviar, se me queda la imagen de cargnado todo el rato y luego no inserta nada en la base de datos

Eso es todo, una vez más, muchas gracias