Foros del Web » Programando para Internet » Jquery »

Problema con jQuery y AJAX

Estas en el tema de Problema con jQuery y AJAX en el foro de Jquery en Foros del Web. Buenos dias compañeros, Tengo un pequeño problema y no se por que narices me pasa, por mas vueltas que le estoy dando al codigo no ...
  #1 (permalink)  
Antiguo 27/10/2008, 03:32
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
Problema con jQuery y AJAX

Buenos dias compañeros,

Tengo un pequeño problema y no se por que narices me pasa, por mas vueltas que le estoy dando al codigo no soy capaz de sacarlo.

El problema esta con el jQuery o supongo con la llamada que estoy haciendo yo para que me ejecute el ajax.

El codigo javascript que tengo es el siguiente:

Código:
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">
	function enviar()
	{
		var obj = document.getElementById("form_container");
		var mail = document.getElementById("mail").value;

		$.ajax({
			type: "GET",
			url: "enviar.php",
			data: "mail="+mail,
			success: function(msg){
				alert("todo ok");
				obj.innerHTML = 'Gracias, pronto obtendras noticias nuestras';
				//document.getElementById("h3_votos").innerHTML = msg;
			}, 
			error: function(xho){
				alert("Error:"+xho.responseText);
				//document.getElementById("h3_votos").innerHTML = "Error:"+xho.responseText;
			}
		});

	}
</script>
Como podeis ver es una llamada sencilla... y el alert del "todo_ok" me lo devuelve, el texto me lo escribe en el campo correspondiente... pero en la base de datos no se me inserta nada... y no se por que :S

Por el enviar.php no me pasa y no se si es que tengo algo mal en esta llamada o por que es!!!

Por favor, ayudadme, os lo agradecere mucho mucho :)

Un Saludo!!!
  #2 (permalink)  
Antiguo 27/10/2008, 04:10
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con jQuery y AJAX

¿Puedes poner también:
- el HTML del formulario?
- el enviar.php?
- La estructura de carpetas donde tienes cada cosa?
  #3 (permalink)  
Antiguo 27/10/2008, 04:38
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Problema con jQuery y AJAX

Cita:
Iniciado por venkman Ver Mensaje
¿Puedes poner también:
- el HTML del formulario?
- el enviar.php?
- La estructura de carpetas donde tienes cada cosa?


Por supuesto.

el index.php

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<script type="text/javascript" src="/scripts/jquery-latest.js"></script>
<script type="text/javascript">
	function enviar()
	{
		var obj = document.getElementById("form_container");
		var mail = document.getElementById("mail").value;

		alert("ok");
		$.ajax({
			type: "GET",
			url: "enviar.php",
			data: "mail="+mail,
			success: function(msg){
				alert("todo ok");
				obj.innerHTML = 'Gracias, pronto obtendras noticias nuestras';
				//document.getElementById("h3_votos").innerHTML = msg;
			}, 
			error: function(xho){
				alert("Error:"+xho.responseText);
				//document.getElementById("h3_votos").innerHTML = "Error:"+xho.responseText;
			}
		});

	}
</script>

<body>
	<div id="form_container" align="center">
    	<label>Si quieres estar informado sobre novedades, suscribete a nuestro newsleteer y pronto sabras mas de nosotros</label>
        <form name="form1">
        	<label>Mail: </label><input type="text" name="mail"  id="mail"/>
            <input type="button" name="btn_enviar" value="Enviar" onclick="javascript: enviar();" />
        </form>
    </div>
</body>
</html> 
El enviar.php

Código PHP:
<?php
    conectar_db
();
    
    
// capturamos el mail
    
$mail $_REQUEST['mail'];
    
    
// introducimos el registro en la BBDD
    
$sql "INSERT INTO suscriptores values ('', '$mail')";
    
$result mysql_query($sql,$linkadb) or die('Consulta fallida: ' mysql_error());
    
mysql_free_result($result);
    
mysql_close($linkadb);
    
?>
Y bueno la estructura de carpetas...

index.php
enviar.php
/scripts/jquery.....js

Y poco mas.

Gracias y un saludo.
  #4 (permalink)  
Antiguo 27/10/2008, 04:43
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con jQuery y AJAX

¿Y cómo sabes que no pasa por enviar.php? ¿Tienes algún tipo de traza puesta? ¿Has mirado los logs del servidor o algo?
  #5 (permalink)  
Antiguo 27/10/2008, 04:45
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Problema con jQuery y AJAX

Cita:
Iniciado por venkman Ver Mensaje
¿Y cómo sabes que no pasa por enviar.php? ¿Tienes algún tipo de traza puesta? ¿Has mirado los logs del servidor o algo?
Se que no pasa por ahi, por que en la BBDD no me inserta nada y por que puse un echo "<script....>alert('tal');</script>"; y no me saltaba la alerta.

Ves algo raro en el codigo de JS (creo que el error esta en la llamada pero no lo se....)??

Un Saludo.
  #6 (permalink)  
Antiguo 27/10/2008, 05:27
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con jQuery y AJAX

Que no salte esa alerta ahí es normal. Y que no se inserte en la BBDD no quiere decir necesariamente que no pase por enviar.php, podría fallar enviar.php.

Prueba a cambiar enviar.php por esto, nada más que esto:

Código:
Hola
Y prueba a poner en el success en lugar de alert("todo ok") pon alert(msg)
  #7 (permalink)  
Antiguo 27/10/2008, 12:58
 
Fecha de Ingreso: junio-2007
Mensajes: 189
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Problema con jQuery y AJAX

El fallo esta en que el elemento ajax no recibe respuesta del enviar.php A no ser claro esta que ese no sea el codigo completo.

Prueba en el archivo enviar.php añadir al final de todo un
Código PHP:
echo 'ok'
Entonces si tendrás un mensaje que te llega.

EDITO: Me explico un poco mejor,

En el objeto ajax, expecificas

Código javascript:
Ver original
  1. success: function(msg){
  2.                 alert("todo ok");
  3.                 obj.innerHTML = 'Gracias, pronto obtendras noticias nuestras';
  4.                 //document.getElementById("h3_votos").innerHTML = msg;
  5.             },

Pero la variable msg esta completamente vacia por que el servidor no manda nada, entonces el estado no es success, no se si me explico
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 03:45.