Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]plugin : validator, remote
Forum PHP.pl > Forum > Przedszkole
peter13135
Do swojego skryptu chcę dodać walidację emaila (sprawdzanie czy jest zajęty)
Robię według wskazówek, które znalazłem tutaj:
http://docs.jquery.com/Plugins/Validation/...remote#examples

Tak wygląda mój kod:
  1. $("#personaledit").validate({
  2. errorPlacement: function (error, element) {
  3. error.css("color", "red");
  4. error.insertAfter(element);
  5. },
  6. rules:{
  7. name:{
  8. required: true,
  9. minlength: 3
  10. },
  11. surname:{
  12. required: true,
  13. minlength: 3
  14. },
  15. birthdate:{
  16. required: true,
  17. minlength: 8
  18. },
  19. postcode:{
  20. required: true,
  21. minlength: 5
  22. },
  23. street:{
  24. required: true,
  25. minlength: 3
  26. },
  27. country:{
  28. required: true,
  29. minlength: 3
  30. },
  31. email:{
  32. required:true,
  33. email:true,
  34. remote: "./includes/ajax.php?module=editprofile"
  35. },
  36. phone:{
  37. required: true,
  38. minlength: 7
  39. },
  40. city:{
  41. required: true,
  42. minlength: 3
  43. }
  44. },
  45. messages:{
  46. name:{
  47. required: "{$lang.required}",
  48. minlength: "{sprintf($lang.pasteXcharacters,3)}"
  49. },
  50. surname:{
  51. required: "{$lang.required}",
  52. minlength: "{sprintf($lang.pasteXcharacters,3)}"
  53. },
  54. birthdate:{
  55. required: "{$lang.required}",
  56. minlength: "{sprintf($lang.pasteXcharacters,8)}"
  57. },
  58. street:{
  59. required: "{$lang.required}",
  60. minlength: "{sprintf($lang.pasteXcharacters,3)}"
  61. },
  62. postcode:{
  63. required: "{$lang.required}",
  64. minlength: "{sprintf($lang.pasteXcharacters,5)}"
  65. },
  66. country:{
  67. required: "{$lang.required}",
  68. minlength: "{sprintf($lang.pasteXcharacters,3)}"
  69. },
  70. email:{
  71. required: "{$lang.required}",
  72. email: "{$lang.emailIncorrect}",
  73. remote: jQuery.format({literal} "{0} is already in use" {/literal})
  74. },
  75. phone:{
  76. required: "{$lang.required}",
  77. minlength: "{sprintf($lang.pasteXcharacters,7)}"
  78. },
  79. city:{
  80. required: "{$lang.required}",
  81. minlength: "{sprintf($lang.pasteXcharacters,3)}"
  82. }
  83. }
  84. });


Klikam na "submit", przeglądarka wysyła prawidłowo dane do skryptu, skrypt prawidłowo wyświetla wartość false/ lub true. Wiem, że to działa, bo w widzę to w opera->zbadaj element->sieć). Jednak następnie walidator nic sobie z tego nie robi. Błędy się nie wyświetlają (tzn. z pozostałych pól się wyświetlają, z tego emaila nie)

Oto kod php (on jest chyba okej)
  1.  
  2. public function checkEmail($email, $user_id)
  3. {
  4. $this->db->query('SELECT `id` FROM `users` WHERE `email`=?',array($email));
  5. $r = $this->db->getRows();
  6. if(isset($r[0]) && $r[0]['id'] != $user_id)//jeśli taki email już istnieje w bazie danych i jego posiaaczem nie jest user_id
  7. {
  8. return 'false';
  9. }
  10. else
  11. {
  12. return 'true' ;
  13. }
  14. }
  15. (...)
  16. public function getAjax()
  17. {
  18. if(isset($_REQUEST['email']))
  19. {
  20. echo $this->checkEmail($_REQUEST['email'], $_SESSION['user_id']);
  21. }
  22. }



W czym może być problem ?
nospor
nie: return 'false';
a: return false;
Analogicznie 'true'...

edit: choć może i ten plugin wymaga tekstów a nie wartosci logicznych... nie jestem tego w stanie stwierdzić w dokumentacji. Gdzie znalazłeś ze to ma byc tekst true/false ?
peter13135
Też nie działa i chyba jednak musi to być jako string bo:
  1. echo true

Wyświetli
Kod
1


a w examplach jak patrzyłem na to co te "ichnie" skrypty wyświetlają, to jest jak u mnie - true albo false

Hej programiści, nikt mi nie pomoże ? wink.gif

Chyba bez pomocy materkamila się nie obejdzie ;(

Kombinuję "na sucho" i mi nie działa.

Oto link do całego projektu:

http://hostuje.net/file.php?id=f929cd0737d...dacc8c845577e9b

Czy mogę prosić o sprawdzenie ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.