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

Recoger respuesta en ajax

Estas en el tema de Recoger respuesta en ajax en el foro de Frameworks JS en Foros del Web. Tengo este cod en el cual recojo la respuesta de otro cod php.La respuesta consiste en si existe el numero de teléfono o no.Pero unas ...
  #1 (permalink)  
Antiguo 29/10/2012, 04:10
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Recoger respuesta en ajax

Tengo este cod en el cual recojo la respuesta de otro cod php.La respuesta consiste en si existe el numero de teléfono o no.Pero unas veces me funciona y otras no.Es decir unas veces me da la respuesta de que existe otras no porque puede ser?

El php

Código PHP:
<?php
  
require_once('Connections/conexion.php');
  
$TELEFONO = isset($_GET['TELEFONO']) ? $_GET['TELEFONO']:"";
  
$query=("SELECT TELEFONO FROM usuarios WHERE TELEFONO ='".$TELEFONO."'");
  
$result mysql_query($query);
  
$rows mysql_num_rows($result);
  if (
$rows) {
  echo 
'1';
  } 
?>
y parte del ajax

Código Javascript:
Ver original
  1. if (parseInt(resp) == 1) {
  2.  
  3. * * * * * * alert('el teléfono ya existe');
  4.  
  5. * * * * * * _TELEFONO.focus();

Gracias
  #2 (permalink)  
Antiguo 29/10/2012, 10:10
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Recoger respuesta en ajax

Como estas

Primero que parámetros estas pasando a través del ajax para ver en donde podria estar el error

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 29/10/2012, 10:37
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Respuesta: Recoger respuesta en ajax

Hombre Dradi7, cúanto me alegra que me contestes.Estoy bien gracias espero que vosotros tambien por allí.
Mira te pongo el ajax completo.El parametro es telefono.

Código Javascript:
Ver original
  1. function nuevoAjax() {
  2.  
  3. * * var xmlhttp=false;
  4.  
  5. * * try {
  6.  
  7. * * * * xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  8.  
  9. * * }
  10.  
  11. * * * * catch(e){
  12.  
  13. * * * * try{
  14.  
  15. * * * * * * xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.  
  17. * * * * }catch(E) {
  18.  
  19. * * * * * * if (!xmlhttp && typeof XMLHttpRequest!='undefined')
  20.  
  21. * * * * * * * * xmlhttp=new XMLHttpRequest();
  22.  
  23. * * * * }
  24.  
  25. * * }
  26.  
  27. * * return xmlhttp;
  28.  
  29. }
  30.  
  31. *
  32.  
  33. function TelefonoExiste(TELEFONO, _callback) {
  34.  
  35. * * var ajax=nuevoAjax();
  36.  
  37. * * ajax.open("GET", "valida1.php?TELEFONO=" + encodeURIComponent(TELEFONO), true);
  38.  
  39. * * ajax.onreadystatechange=function() {
  40.  
  41. * * * * if ((ajax.readyState==4) && (ajax.status==200)){
  42.  
  43. * * * * * * //ejecutamos _callback como si fuese una función, pasandole el parámetro
  44.  
  45. * * * * * * _callback(ajax.responseText);
  46.  
  47. * * * * }
  48.  
  49. * * }
  50.  
  51. * * ajax.send(null);
  52.  
  53. }
  54.  
  55. *
  56.  
  57. function GuardaFormulario() {
  58.  
  59. * * //usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
  60.  
  61. * * var _TELEFONO = document.forms['form1'].elements['TELEFONO'];
  62.  
  63. *
  64.  
  65. * * if (_TELEFONO.value.length == 0){
  66.  
  67. * * * * alert("Insertar el Teléfono");
  68.  
  69. * * * * _TELEFONO.focus();
  70.  
  71. * * * * return 0;
  72.  
  73. * * }
  74.  
  75. * *
  76.  
  77. * * //lamamos a AJAX:
  78.  
  79. * * TelefonoExiste(_TELEFONO.value, function(resp) {
  80.  
  81. * * * * //evaluamos la respuesta del server, tengase en cuenta que responseText devuelve un string, por lo tanto hay que parsear a entero si se evalúa un numero:
  82.  
  83. * * * * if (parseInt(resp) == 1) {
  84.  
  85. * * * * * * //aqui seria bueno un mensaje
  86.  
  87. * * * * * * alert('el teléfono ya existe');
  88.  
  89. * * * * * * _TELEFONO.focus();
  90.  
  91. * * * * } else {
  92.  
  93. * * * * * * //evaluar si se envía el form desde aquí, o se usa ajax para enviarlo.
  94.  
  95. * * * * * * alert("¡El Cliente se ha dado de alta!");
  96.  
  97. * * * * * * document.forms['form1'].submit();
  98.  
  99. * * * * }
  100.  
  101. * * });
  102.  
  103. * * //como ajax es asincrono, JS NO se detendrá en la llamada anterior, por lo tando hay que retornar false o 0 como lo tienes:
  104.  
  105. * * return 0;
  106.  
  107. }

Un saludo
  #4 (permalink)  
Antiguo 29/10/2012, 11:07
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Recoger respuesta en ajax

Si yo también estoy bien por aquí con algo de trabajo pero todo bien

Tu código lo veo perfecto mas bien podrías decirme que es el valor exacto que escribes dentro de tu pagina web y ademas de que tipo es tu campo teléfono en la base de datos

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 29/10/2012, 11:21
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Respuesta: Recoger respuesta en ajax

Gracias, que suerte por lo del trabajo.....
Mira el campo lo tengo como char(15) , Null
Y lo que escribo en el campo son todos números de télefono.
Puede estar mal el archivo php?
Un saludo
  #6 (permalink)  
Antiguo 29/10/2012, 13:18
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Recoger respuesta en ajax

Podrías validar tu código usando el inspector de google chrome o el firebug de mozilla firefox y validar en la consola si te esta dando algun error al momento de que pones enviar tu formulario

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 29/10/2012, 13:39
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Respuesta: Recoger respuesta en ajax

Este es el error me arroja el php:

Código:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Inetpub\vhosts\xn--electrodiseo-khb.es\httpdocs\Wedserver\valida1.php on line 6
  #8 (permalink)  
Antiguo 29/10/2012, 13:42
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Recoger respuesta en ajax

en tu php deberia ser asi

if ($rows>0) o en todo caso if($result)

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 29/10/2012, 13:56
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Respuesta: Recoger respuesta en ajax

Código:
en tu php deberia ser asi

if ($rows>0) o en todo caso if($result)
Me sigue mandando el formulario y el teléfono existe en la base de datos.Lo que si puedo decirte es que hay números duplicados.Porque un cliente puede cambiar de nombre pero seguir con el mismo número de teléfono.

Y en unos navegadores funciona perfectamente y en otros no.

Podemos hacer que cuando de el alert de teléfono existe refresque la pantalla y se quede vacio el campo de nuevo?

He pensado en poner un alert con dos botones para confirmar o no.Y así si el teléfono existe hacer un registro nuevo y recuperar los datos del cliente.


Confirmado si refrescas la pantalla y vuelves a entrar en el formulario no hay ningún problema.

Última edición por satjaen; 29/10/2012 a las 14:15
  #10 (permalink)  
Antiguo 29/10/2012, 15:11
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 3 meses
Puntos: 10
Respuesta: Recoger respuesta en ajax

Quiero hacer una cosa parecida a esta pero bien hecha claro:

Código Javascript:
Ver original
  1. TelefonoExiste(_TELEFONO.value, function(resp) {
  2. //evaluamos la respuesta del server, tengase en cuenta que responseText devuelve un string, por lo tanto hay que parsear a entero si se evalúa un numero:
  3. if (parseInt(resp) == 1) {
  4. function confirma(){
  5. confirmar=confirm("¿El cliente ya existe, desea hacer un registro nuevo?");
  6.  if (confirmar)
  7. window.location ="menu3.php?id="+_TELEFONO;
  8. alert('Diste a Aceptar');
  9.  else
  10. return false;
  11. //Aquí quiero que me refresque el formulario para que no quede ni rastro de la variable
  12. alert('Diste a Cancelar')
  13.  }
  14. _TELEFONO.focus();
  15. } else {
  16. ////// Y si no existe el teléfono mandar el formulario
  17. alert("¡El Cliente se ha dado de alta!");
  18. document.forms['form1'].submit();
  19. }
  20. });
  21. //como ajax es asincrono, JS NO se detendrá en la llamada anterior, por lo tando hay que retornar false o 0 como lo tienes:
  22. return 0;
  23. }

Un saludo

Etiquetas: ajax, funcion, php, recoger, respuesta, 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 09:13.