Foros del Web » Programando para Internet » Javascript »

comentarios instantaneos ajax

Estas en el tema de comentarios instantaneos ajax en el foro de Javascript en Foros del Web. Buenas tengo un problema en este codigo y nose como solucionarlo comento y el primer comentario sale pero al comentar ese comentario no me registra ...
  #1 (permalink)  
Antiguo 04/10/2012, 05:42
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 13 años
Puntos: 10
comentarios instantaneos ajax

Buenas tengo un problema en este codigo y nose como solucionarlo comento y el primer comentario sale pero al comentar ese comentario no me registra el comentario ni el id es como si no me mandara nada este segndo formularo. este es el codigo:
index.php este si funciona
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3.  
  4.  
  5. ?>
  6. <script type="text/javascript" src="js/jquery.js"></script>
  7. <script type="text/javascript" src="js/funciones.js"></script>
  8. <form action="" method="post" name="coment" onsubmit="enviarComentarios(); return false" id="formu">
  9. <input type="hidden" name="id_comen" value="0" />
  10. <input type="text" name="comentarios" />
  11. <input type="submit" name="Submit" value="comentar" />
  12.  
  13. <div id="comentario">
  14. <?php include('comentarios.php');?>
  15. </div>

Este es el que no me funciona
comentarios.php
Código PHP:
Ver original
  1. <style>
  2. #formu55
  3. {
  4. background:#CCC;
  5. border-style:solid;
  6. border-width:5px;
  7. border-color:#FFFFFF;}
  8. </style>
  9. <?php
  10. $comentar=mysql_query("select * from comentarios where id_comentario='0'",$conexion);
  11. ?>
  12. <script type="text/javascript" src="js/funciones.js"></script>
  13. <?php
  14. while($row = mysql_fetch_array($comentar)){
  15.     echo '<div id="formu55" style="background:#CCC;">'.$row['comentario']."<br>";
  16.     $comentado=mysql_query("select * from comentarios where id_comentario='$row[id]'",$conexion);
  17.     while($rom=mysql_fetch_array($comentado))
  18.     {
  19.         echo $rom['comentario']."<br>";
  20.     }
  21.     echo '<form action="" method="post" name="coment" onsubmit="enviarComentarios(); return false" id="formu">
  22. <input type="" name="id_comen" value="'.$row['id'].'" />
  23. <input type="text" name="comentarios" />
  24. <input type="submit" name="Submit" value="comentar" /></div>';
  25.    
  26. }
  27. ?>
funciones.js
Código Javascript:
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.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18. function enviarComentarios(){
  19.     divComentario=document.getElementById('comentario');
  20.     comen=document.coment.comentarios.value;
  21.     id_comen=document.coment.id_comen.value;
  22.    
  23.     ajax=objetoAjax();
  24.    
  25.     ajax.open("POST","insertar.php",true);
  26.     ajax.onreadystatechange=function(){
  27.         if(ajax.readyState==4){
  28.             divComentario.innerHTML = ajax.responseText
  29.             LimpiarCampos();
  30.             }
  31.         }
  32.         ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  33.         ajax.send("comentarios="+comen+"&id_comen="+id_comen)
  34.     }
  35.     function LimpiarCampos(){
  36.     document.coment.comentarios.value="";
  37.     document.coment.id_comen.value="";
  38.     }
insertar.php
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $comentarios=$_POST['comentarios'];
  4. $id_comen=$_POST['id_comen'];
  5. $id_comen1=$_POST['id_comen1'];
  6. $comentarios1=$_POST['comentarios1'];
  7. if($id_comen=='0')
  8. {
  9. $registara=mysql_query("insert into comentarios (id,id_logueado,id_comentario,comentario) value ('null','1','$id_comen','$comentarios')",$conexion);
  10. }
  11. else
  12. {
  13. $registara=mysql_query("insert into comentarios (id,id_logueado,id_comentario,comentario) value ('null','1','$id_comen1','$comentarios1')",$conexion);
  14. }
  15. include('comentarios.php');
  16. ?>
lo que kiero son dos formulario que uno es el comentario y el otro es para comentar comentarios, pero con ajax para que salga al instante. gracias un saludo.
  #2 (permalink)  
Antiguo 04/10/2012, 07:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: comentarios instantaneos ajax

debes de validar ajax.status==200 junto con ajax.readyState==4, es decir (ajax.readyState==4) && (ajax.status==200)

consulte un manual de AJAX: http://librosweb.es/ajax/index.html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 04/10/2012, 10:44
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 13 años
Puntos: 10
Respuesta: comentarios instantaneos ajax

y que hago con ese ajax.status==200 que es lo que quiere deccir??? gracias un saludo.
  #4 (permalink)  
Antiguo 04/10/2012, 13:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: comentarios instantaneos ajax

Cita:
Iniciado por edie8 Ver Mensaje
y que hago con ese ajax.status==200 que es lo que quiere deccir??? gracias un saludo.
consulte el manual que le acabo de indicar, si no agrega ello no está implementando AJAX adecuadamente, por lo que no podrá obtener la respuesta del servidor (HTTP 200 OK), y por ello le falla, es uno de los errores más comunes de principiantes en AJAX.

Consulte el manual de AJAX
Consulte sobre el protocolo HTTP y los tipos de Status: 200, 300, 400, 500 es algo fundamental e imprescindible que todo desarrollador web debe conocer. HTTP es la base de la web
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 04/10/2012, 13:43
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 13 años
Puntos: 10
Respuesta: comentarios instantaneos ajax

he probado poniendo esto y no me funciona no me manda los datos de este segundo formulario al insertar.php este es mi nuevo codigo:
Código Javascript:
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.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18. function enviarComentarios(){
  19.     divComentario=document.getElementById('comentario');
  20.     comen=document.coment.comentarios.value;
  21.     id_comen=document.coment.id_comen.value;
  22.    
  23.     ajax=objetoAjax();
  24.    
  25.     ajax.open("POST","insertar.php",true);
  26.     ajax.onreadystatechange=function(){
  27.         if((ajax.readyState==4) &&(ajax.status==200)){
  28.             divComentario.innerHTML = ajax.responseText
  29.             LimpiarCampos();
  30.             }
  31.         }
  32.         ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  33.         ajax.send("comentarios="+comen+"&id_comen="+id_comen)
  34.     }
  35.     function LimpiarCampos(){
  36.     document.coment.comentarios.value="";
  37.     document.coment.id_comen.value="";
  38.     }
Tengo algun fallo mas?? nose porque no me funciona. un saludo.
  #6 (permalink)  
Antiguo 05/10/2012, 08:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: comentarios instantaneos ajax

tienes errores de sintaxis, te faltan unos ;
tienes variables sin declaración explicita (var)
el código mal identado (es difícil leerlo)

utilice una consola para depurar
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 12/10/2012, 04:49
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 13 años
Puntos: 10
Respuesta: comentarios instantaneos ajax

E cambiado esos errores y sige sin funcionar nose que puede ser pero desde luego esos errores no, lo que quiro hacer son dos formularios diferentes alomejor el error esta en usar la misma funcion puede ser????

Etiquetas: ajax, comentarios, formulario, funcion, html, input, js, php, select
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 18:47.