Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Donde está el error al recibir los datos con AJAX?

Estas en el tema de Donde está el error al recibir los datos con AJAX? en el foro de Frameworks JS en Foros del Web. Hola: Me pasa una cosa, muy rara y no doy con el fallo. Lo que estoy haciendo es validar si el nombre que introduce un ...
  #1 (permalink)  
Antiguo 08/04/2008, 17:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 17 años, 3 meses
Puntos: 1
Exclamación Donde está el error al recibir los datos con AJAX?

Hola:
Me pasa una cosa, muy rara y no doy con el fallo.
Lo que estoy haciendo es validar si el nombre que introduce un usuario se encuentra en la base de datos ó no.
Pues bien, lo mando a traves de AJAX:
Cita:
function compUsuario(dataSource,valor) {
var DivDestino = document.getElementById("DivDestino");
ajax3=objetoAjax();
ajax3.open("POST", dataSource,true);
ajax3.onreadystatechange = function(){
if (ajax3.readyState == 4 && ajax3.status == 200){
alert(ajax3.responseText);
if(ajax3.responseText=="registrado"){
alert('ROJO');
DivDestino.innerHTML = "<img src='../../img/error.gif'><span style='color:red;'>"+ajax3.responseText+"</span>";
}else{
alert('AZUL');
DivDestino.innerHTML = "<span style='color:blue;'>"+ajax3.responseText+"</span>";
}
}
}
ajax3.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax3.send(valor);
}
.

El problema que tengo es que el "alert(ajax3.responseText);" me sale con el mensaje bien dependiendo de si está o no el nombre en la BD, pero SIEMPRE me aparece el mensaje de "AZUL", es decir que siempre se ejecuta la rama del ELSE.
¿ALguien sabe que cosa más rara me está pasando...?
Gracias!!!
  #2 (permalink)  
Antiguo 08/04/2008, 20:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Donde está el error al recibir los datos con AJAX?

Hola Carol_84,

Revisa que no tengas espacios en blanco al principio o al final de la cadena, ya que pueden ser los causantes de que se vaya por el else.

Saludos.
  #3 (permalink)  
Antiguo 09/04/2008, 06:34
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Donde está el error al recibir los datos con AJAX?

Hola!! Esto es un quebradero de cabeza......
Sigo igual. Mirar para mandar los dato del inpur pongo:
Cita:
<tr>
<td> Titulos premio/beca</td>
<td><input size="40" name = "titulo" id="titulo" type = "text" onchange="compUsuario('addbeca.php','nuevo='+this. value)"></td>
</tr>
<tr><td><td><div id="DivDestino"></div></td></td></tr>
Mi función AJAX es:

Cita:
function compUsuario(dataSource,valor){
var DivDestino = document.getElementById('DivDestino');
ajaxotro=objetoAjax();
ajaxotro.open("POST", dataSource,true);
ajaxotro.onreadystatechange = function(){
if (ajaxotro.readyState == 4 && ajaxotro.status == 200) {
alert(ajaxotro.responseText);
if (ajaxotro.responseText=="ok"){
alert('uu');
DivDestino.innerHTML = "<img src='../../img/error.gif '><span style='color:red;'>"+'Beca/Premio ya registrado'+"</span>";
alert(DivDestino.innerHTML);
}else{alert('adios');
}
}
}
ajaxotro.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajaxotro.send(valor);
}

Y el fichero addbeca.php es:


Cita:
<?php
session_start();
include ("../../conn.inc.php");
$nuevo= $_POST['nuevo'];
if(trim($nuevo)!=''){
$consulta= "SELECT * FROM nombres WHERE titulo= '".$nuevo."';";
$resultado= mysql_query($consulta,$con) or die(mysql_error());
if(mysql_num_rows($resultado)!= 0)
echo "ok";
else
echo "mal";
}
?>

El problema que tengo es que siempre me sale el mensaje de adios....¿Alquien puede ayudarme...?
  #4 (permalink)  
Antiguo 09/04/2008, 08:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Donde está el error al recibir los datos con AJAX?

Prueba hacerlo así:
Código PHP:
<?php
session_start
();
header"Content-type: text/plain" ); // agregue esta línea
include ("../../conn.inc.php");
$nuevo$_POST['nuevo'];
if(
trim($nuevo)!=''){
$consulta"SELECT * FROM nombres WHERE titulo= '".$nuevo."';";
$resultadomysql_query($consulta,$con) or die(mysql_error());
if(
mysql_num_rows($resultado)!= 0)
echo 
"ok";
else
echo 
"mal";
} else {
     echo 
"no se envio un valor"// también esto para que revises con un alert la respuesta
}
?>
Saludos.
  #5 (permalink)  
Antiguo 09/04/2008, 08:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Donde está el error al recibir los datos con AJAX?

Hola GatorV!!!
MUchííísmias gracias, porque tan solo he puesto header( "Content-type: text/plain" ); y me ha funcionado prefectamente!!!
Gracias!!!!
  #6 (permalink)  
Antiguo 15/08/2008, 16:48
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Donde está el error al recibir los datos con AJAX?

hola como estan?? estoy comenzando mi inquisicion por ajax y resulta que tengo un problema muy similar a este. Estoy haciendo una pequeño sistema web para aprender y el mismo se trata de gestion de alumnos, resulta que cuando cuando comenze con este proyecto daba de alta a un nuevo alumno(llenando un formulario) y antes de dar de alta a un nuevo alumno preguntaba si el mismo existia y lo hacia de una funcion similiar a Carol_84, la diferencia que lo hacia por get(solo daba el legajo del alumno). Ahora lo que pretendo es y no me sale es de enviar por post todos los datos del formulario y cargarlos en el caso que ese alumno no se encuentre ahorrandome de esa forma codigo.
Ahora bien, aclaro por los dudas tiene que ver, cuando hago esto:

Cita:
var pos_url = 'modulos/ver-si-existe-al.php';
var nombre = document.getElementById('legajo').value;
var req = new XMLHttpRequest();
if (req)
{
req.onreadystatechange = function()
{
if (req.readyState == 4 && (req.status == 200 || req.status == 304))
{
alert(req.responseText); //para ver si llega
}
}

req.open('POST', pos_url,true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send('legajo='+nombre);
}
}
entonces muestra legajo perfectamente, pero cuando hago esto:

Cita:
var pos_url = 'modulos/ver-si-existe-al.php';
var nombre = document.getElementById('nombre_alu').value
var req = new XMLHttpRequest();
if (req)
{
req.onreadystatechange = function()
{
if (req.readyState == 4 && (req.status == 200 || req.status == 304))
{
alert(req.responseText);

}
}

req.open('POST', pos_url,true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send('nombre_alu='+nombre);
}

}
No me muestra el nombre del alumno, por lo tanto cuando quiero enviar mas de una variable por post no funciona.
Desde ya agradezo su colaboracion y tiempo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:04.