Robię według wskazówek, które znalazłem tutaj:
http://docs.jquery.com/Plugins/Validation/...remote#examples
Tak wygląda mój kod:
$("#personaledit").validate({ errorPlacement: function (error, element) { error.css("color", "red"); error.insertAfter(element); }, rules:{ name:{ required: true, minlength: 3 }, surname:{ required: true, minlength: 3 }, birthdate:{ required: true, minlength: 8 }, postcode:{ required: true, minlength: 5 }, street:{ required: true, minlength: 3 }, country:{ required: true, minlength: 3 }, email:{ required:true, email:true, remote: "./includes/ajax.php?module=editprofile" }, phone:{ required: true, minlength: 7 }, city:{ required: true, minlength: 3 } }, messages:{ name:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,3)}" }, surname:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,3)}" }, birthdate:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,8)}" }, street:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,3)}" }, postcode:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,5)}" }, country:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,3)}" }, email:{ required: "{$lang.required}", email: "{$lang.emailIncorrect}", remote: jQuery.format({literal} "{0} is already in use" {/literal}) }, phone:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,7)}" }, city:{ required: "{$lang.required}", minlength: "{sprintf($lang.pasteXcharacters,3)}" } } });
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)
public function checkEmail($email, $user_id) { $r = $this->db->getRows(); 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 { return 'false'; } else { return 'true' ; } } (...) public function getAjax() { { } }
W czym może być problem ?