Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/10/2009, 11:05
vili86
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Respuesta: mi primera vex en ajax y tengo este error ??

Es muy raro lo que me pasa miren quiero hacer una comprabacion de id si existe, o no los genero por un random de php
Código php:
Ver original
  1. <?php
  2. //incluímos la clase ajax
  3. function comprobar_repetidos($cadena){
  4. //esta función comprueba si se ha repetido un nombre de usuario
  5. //se supone que aquí se debería hacer una búsqueda en base de datos para ver si hay repetidos
  6.    include('conectar.php');
  7.    $link = Conectarse();
  8.    $sqlQueryCat = mysql_query("SELECT id FROM jugadores", $link)or die(mysql_error);
  9.    $rowCat = mysql_fetch_array($sqlQueryCat);
  10.    
  11.    
  12. //nosotros para este ejemplo no vamos a conectar con base de datos
  13. //simplemente comprobamos si la cadena es igual a unos valores literales
  14. if ($cadena == "$rowCat[id]"){
  15. return false;
  16. }
  17. return true;
  18. }
  19. require ('xajax/xajax_core/xajax.inc.php');
  20.  
  21. //instanciamos el objeto de la clase xajax
  22. $xajax = new xajax();
  23. $xajax->processRequest();
  24. $xajax->setCharEncoding('ISO-8859-1');
  25. $xajax->configure('decodeUTF8Input',true);
  26.  
  27. function comprobar_permitidos($cadena){
  28. $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
  29. for ($i=0; $i<strlen($cadena); $i++){
  30. if (strpos($permitidos, substr($cadena,$i,1))===false){
  31. //no es válido;
  32. return false;
  33. }
  34. }
  35. //si estoy aqui es que todos los caracteres son validos
  36. return true;
  37. }
  38.  
  39. function validar_usuario($entrada){
  40. //instanciamos el objeto para generar la respuesta con ajax
  41. $respuesta = new xajaxResponse();
  42.  
  43. if ($entrada == ""){
  44. //escribimos en la capa con id="mensaje" que no se ha escrito nombre de usuario
  45. $respuesta->assign("mensaje","innerHTML","Debes escribir algo como nombre de usuario");
  46. //Cambiamos a rojo el color del texto de la capa mensaje
  47. $respuesta->assign("mensaje","style.color","red");
  48. }elseif (!comprobar_permitidos($entrada)){
  49. //escribimos en la capa con id="mensaje" el error que el usuario tiene caracteres permitidos
  50. $respuesta->assign("mensaje","innerHTML","El nombre de usuario tiene caracteres no permitidos");
  51. //Cambiamos a rojo el color del texto de la capa mensaje
  52. $respuesta->assign("mensaje","style.color","red");
  53. }elseif (!comprobar_repetidos($entrada)){
  54. //escribimos en la capa con id="mensaje" el error que el usuario está repetido
  55. $respuesta->assign("mensaje","innerHTML","El nombre de usuario escrito ya está en uso");
  56. //Cambiamos a rojo el color del texto de la capa mensaje
  57. $respuesta->assign("mensaje","style.color","red");
  58. }else{
  59. //es que todo ha ido bien
  60. //escribimos en la capa con id="mensaje" que todo ha ido bien
  61. $respuesta->assign("mensaje","innerHTML","Todo correcto");
  62. //Cambiamos a azul el color del texto de la capa mensaje
  63. $respuesta->assign("mensaje","style.color","blue");
  64. }
  65.  
  66. //tenemos que devolver la instanciación del objeto xajaxResponse
  67. return $respuesta;
  68. }
  69.  
  70. //registramos la función creada anteriormente al objeto xajax
  71. $xajax->registerFunction("validar_usuario");
  72.  
  73. //El objeto xajax tiene que procesar cualquier petición
  74.  
  75. ?>
  76.  
  77. <html>
  78. <head>
  79. <title></title>
  80. <?php
  81. //En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
  82. $xajax->printJavascript("xajax/");
  83. ?>
  84. </head>
  85. <body>
  86.   <td id="carlos" style="text-align:left">Nº Registro:</td>
  87.              <td> <input name="registro_fbf" type="text" size="10" value="<?php $numero = rand(500000,100000);  echo $numero; ?>" readonly="true"> <input type="button" value="Comprobar validez de usuario" onClick="javascript:xajax_validar_usuario(document.form1.usuario.value)"></td>
  88.              <div id="mensaje"></div>
  89.              </tr>

Lo mas raro aparte del mensaje que me aparece, es que mi consulta para buscar y comparar solo los hace para los primeros 3 o dos registros luego falla y por decir pongo el id=80 existe pero me nuestra el mensaje q esta libre pq ¿Se hace de otra manera las consultas en ajax ?
Y respecto a $xajax->processRequest(); lei en san goggle que debe estar antes pero no se como debo solucionar esot igual