Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2010, 05:49
Avatar de aniMAYtions
aniMAYtions
 
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 11 meses
Puntos: 2
problema con envío de formulario php sin recargar la página

Hola amig@s.

Estoy tratando de enviar un formulario php sin que se recargue la página en la que me encuentro, para luego insertar los datos en la base de datos y mostrar el nuevo registro.
Me explico, es un módulo de comentar noticias y lo que quiero conseguir es que cada vez que un usuario quiera hacer un comentario, éste sea registrado e inmediatamente se muestre donde los demás.
Para ello, en la página incial muestro mi formulario de la siguiente manera:
Código:
<form name='fcomenta' id='fcomenta' action='' method='post'>
   <p>Su nombre:</p>
   <p><input name='nombre' type='text' id='autor' value='An&oacute;nimo' maxlength='20' onfocus='javascript:nombre(this.value);' onblur='javascript:nombre(this.value);'/></p>
   <p>Su email:</p>
   <p><input name='email' type='text' id='autor' value='' maxlength='50'/></p>
   <p>Texto de su comentario:</p>

   <p><textarea name='comentario' cols='40' rows='5'></textarea></p>
						
   <input name='idnoticia' type='hidden' value=".$row_noticia['ID']." />
   <input name='ipusuario' type='hidden' value=".$ip." />
   <p><input name='env_com' type='submit' value='Enviar' id='env_com'/></p>
</form>
Luego, según he leído por la red, con la librería jquery se haría de la siguiente manera:

Código:
   // Interceptamos el evento submit
    $('#form, #fat, #fcomenta').submit(function() 
	{
	   alert('intercerpto el submit');
	  // Enviamos el formulario usando AJAX
	  	var noticia = document.fcomenta.idnoticia.value;
		var usuario = document.fcomenta.idusuario.value;
		var nombre = document.fcomenta.nombre.value;
		var email = document.fcomenta.email.value;
		var comentario = document.fcomenta.comentario.value;
	
		$.ajax({
		type: "GET",
			url: "funciones.php",
			data: "action=comentar&cod_usuario="+cod_usuario+"&cod_noticia="+cod_noticia+"&nombre="+nombre+"&email="+email+"&comentario="+comentario,
			success: function(msg){
				document.getElementById("txtprueba").style.visibility = 'visible';
				document.getElementById("txtprueba").innerHTML = msg;
			}, 
			error: function(xho){
				document.getElementById("txtprueba").style.visibility = 'visible';
				document.getElementById("txtprueba").innerHTML = "Error:"+xho.responseText;
			}
		});
	})
Bueno, la verdad es que la función que encontré la he adaptado a mis necesidades. Pero de todas formas no me intercepta el submit y la página se recarga igualmente no haciendo absolutamente nada.

Alguien puede guiarme sobre cómo podría solucionar esto?? Qué librería se adptaría más a lo que io quiero hacer y cómo debería utilizarla para conseguirlo??

Muchas gracias!!

Última edición por aniMAYtions; 08/01/2010 a las 05:58 Razón: me he dado cuenta de un error, pero sigue sin funcionar