Foros del Web » Programando para Internet » Javascript »

Envio de formulario en Ajax

Estas en el tema de Envio de formulario en Ajax en el foro de Javascript en Foros del Web. Hola miren tengo un problemilla con el ajax o con el form para enviar a la bd les muestro los codigos @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: ...
  #1 (permalink)  
Antiguo 20/12/2011, 14:19
 
Fecha de Ingreso: diciembre-2011
Ubicación: Buenos aires
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Envio de formulario en Ajax

Hola miren tengo un problemilla con el ajax o con el form para enviar a la bd les muestro los codigos

Código HTML:
Ver original
  1. <script src="Enviar.js"></script>
  2.  
  3. <?
  4. $id = 1;
  5. $Usuario = "Onlyrock25";
  6. $Avatar = "dasda.hpf";
  7. $Pagina = "Home";
  8. ?>
  9.  
  10. Onlyrock25<br />
  11. <img src="" width="140" height="140" /><br />
  12. <form onsubmit="Comentar('<? echo $id ?>','<? echo $Usuario ?>','<? echo $Avatar ?>','<? echo $Pagina ?>,this.value)';" method="post">
  13. <textarea cols="55" rows="5" onkeyup="Caracteres('Estados')"  id="Comentar"required="required" placeholder="Escribe un comentario."></textarea><br />
  14. <div id="Estados"></div>
  15. <input type="submit" value="Comentar" /><input type="reset"  value="Limpiar"/>
  16. </form>


Código Javascript:
Ver original
  1. function Comentar(Id,Usuario,Avatar,Pagina){
  2.    
  3.     // Variables ajax ---
  4.     var ajax = new XMLHttpRequest();
  5.    
  6.     // Variable Comentario ---
  7.     var Comentario = document.getElementById('Comentar').value;
  8.    
  9.     // Estados ---
  10.     ajax.onreadystatechange = function(){
  11.        
  12.         // Si esta cargando ---
  13.         if(ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3){
  14.             // Escribe : Cargando...
  15.             document.getElementById('Estados').innerHTML='Cargando...';
  16.         }
  17.        
  18.         // Si se termino ---
  19.       if(ajax.readyState==4 && ajax.status==200){
  20.             // Escribe : Gracias por comentar , y Actualiza los Comentarios
  21.             document.getElementById('Estados').innerHTML='Gracias por comentar';
  22.         }
  23.     }
  24.    
  25.    
  26.     // Envio ---
  27.     ajax.open("GET","Enviar.php?Id="+Id+"&Usuario="+Usuario+"&Avatar="+Avatar+"&Comentario="+Comentario+"&Pagina="+Pagina,true);
  28.     ajax.send();
  29. }


Código PHP:
Ver original
  1. <?
  2. //--- Conexion mysql ---
  3. $Conexion = mysql_connect('localhost','root','lamocosa');
  4. mysql_select_db("ajax",$Conexion); 
  5.  
  6. // --- Variables ---
  7. $id = $_GET['id'];
  8. $Usuario = ucfirst($_GET['Usuario']);
  9. $Avatar = $_GET['Avatar'];
  10. $Comentario = nl2br(ucfirst($_GET['Usuario']));
  11. $Pagina = ucfirst($_GET['Pagina']);
  12.    
  13. // --- Insercion mysql ---
  14.  
  15. echo 'id = '.$id.' <br>Usuario = '.$Usuario. ' <br>Avatar = '. $Avatar . '<br>Comentario = '. $Comentario . '<br>Pagina = '.$Pagina;
  16.  
  17. // mysql_query("INSERT INTO comentarios (`id`, `Usuario`, `Avatar`, `Comentario`, `Pagina`) VALUES ('".$id."', '".$Usuario."', '".$Avatar."', '".$Comentario."', '".$Pagina."');");
  18.    
  19. // --- Cerrar mysql ---
  20. mysql_close($Conexion);
  21. ?>

El archivo Enviar.php por si solo si lo abro con las variables me manda todo de 10 por eso dedusco que el problema esta en el ajax.



Algun comentario que me pueda ayudar
  #2 (permalink)  
Antiguo 20/12/2011, 14:39
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envio de formulario en Ajax

me he parado aquí
Cita:
<script src="Enviar.js"></script>
te falta el atributo type
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 20/12/2011, 16:07
 
Fecha de Ingreso: diciembre-2011
Ubicación: Buenos aires
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Envio de formulario en Ajax

Sigo igual :S
  #4 (permalink)  
Antiguo 20/12/2011, 16:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envio de formulario en Ajax

no vas a sumitar el formulario, así que no es necesario ni method ni action. tampoco necesitas un botón submit
Cita:
<form>
<textarea cols="55" rows="5" onkeyup="Caracteres('Estados')" id="Comentar" required="required" placeholder="Escribe un comentario."></textarea><br />
<input type="button" value="Comentar" onclick="Comentar('<? echo $id ?>','<? echo $Usuario ?>','<? echo $Avatar ?>','<? echo $Pagina ?>,this.value)'; return false;" />
no muestras como has creado el objeto
Cita:
var ajax = new XMLHttpRequest();
este comentario
Cita:
// Escribe : Gracias por comentar , y Actualiza los Comentarios
no muestras el código para actualizar los comentarios
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 20/12/2011, 17:13
 
Fecha de Ingreso: diciembre-2011
Ubicación: Buenos aires
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Envio de formulario en Ajax

El codigo para actualizar luego lo hago me olvide de quitarlo antes de postearlo aqui.

y el XMLHttpRequest lo cree como esta alli puesto. no pongo para navegadores viejos ni nada. la pagina que estoy haciendo es solo para chrome.
  #6 (permalink)  
Antiguo 21/12/2011, 06:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envio de formulario en Ajax

chrome genera variables a partir de elementos con id. entonces, la solución puede estar en cambiar el nombre de la función o la id del control textarea.

en caso que esto no resuelva el problema, has de indicar que error te levanta
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 03/01/2012, 20:34
 
Fecha de Ingreso: diciembre-2011
Ubicación: Buenos aires
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Envio de formulario en Ajax

Cita:
Iniciado por IsaBelM Ver Mensaje
chrome genera variables a partir de elementos con id. entonces, la solución puede estar en cambiar el nombre de la función o la id del control textarea.

en caso que esto no resuelva el problema, has de indicar que error te levanta
Si ese es el problema creo que : El nombre de la funcion puede ser el problema ya que es el mismo que el id del textarea

Etiquetas: ajax, html, js, php
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 04:23.