2013-05-16 7 views
6

Chcę potwierdzić, czy nazwa nie istnieje w bazie danych przy użyciu jQuery.validate tak oto co mam do tej pory:jQuery Walidacja Wykorzystanie metody zdalnego, aby sprawdzić, czy nazwa użytkownika już istnieje

jQuery:

$("#signupForm").validate({ 
     rules: { 
      username: { 
       required: true, 
       minlength: 3, 
       remote: "check-username.php" 
       } 
      }, 
     messages: { 
      username:{ 
       remote: "This username is already taken! Try another." 
      } 
     } 
    }); 

Check- nazwaużytkownika.php:

<?php 

require_once "./source/includes/data.php"; 
header('Content-type: application/json'); 

$name = mysql_real_escape_string($_POST['username']); 

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'"); 

if (mysql_num_rows($check_for_username) > 0) { 
    $output = true; 
} else { 
    $output = false; 
} 
echo json_encode($output); 
?> 

Ten kod zawsze pokazuje błąd, że nazwa użytkownika jest pobierana, nawet jeśli nie jest.

używam jQuery Mobile obsługuje 1.9.1

góry dziękuję.

+2

Czy możesz wyjaśnić to pytanie trochę więcej? Która część wydaje się działać, a co nie? – CP510

+0

Na stronie rejestracji nie sprawdza, czy użytkownik jest wzięty. – MacLover

+0

Otwórz kartę sieci. Czy wniosek został wysłany na stronę "check-username.php" przy wysyłaniu? jeśli tak, jaki jest kod odpowiedzi (200 404 500 itd.) i jaka jest zawartość odpowiedzi? – Matanya

Odpowiedz

5

udało mi się uzyskać to do pracy poprzez zmianę techniki PHP używałem, oto moja PHP:

<?php 
require_once "./source/includes/data.php"; 
header('Content-type: application/json'); 
$request = $_REQUEST['username']; 

$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'"); 
$result = mysql_num_rows($query); 
if ($result == 0){ 
$valid = 'true';} 
else{ 
$valid = 'false'; 
} 
echo $valid; 
?> 

Dzięki wszystkim tutaj twoja pomoc :)

2

Mam dwa zasoby do obejrzenia.

Dziennik przykład z plugin sprawdzania poprawności: http://jquery.bassistance.de/validate/demo/milk/

jQuery rozwiązanie forum: http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locks-up

Możliwe rozwiązania jest to, że odpowiedzi nie muszą być zakodowane JSON ile mogę powiedzieć. Ponieważ json potrzebuje par wartości klucza, podanie tylko wartości nie będzie działać. Więc próbujcie po prostu powtórzyć to jako "prawdziwe" lub "fałszywe" struny.

Po drugie, walidacja używa GET dla metody przesyłania formularzy, a nie POST.

UWAGA: wystarczy, że możliwe ROZWIĄZANIE PYTANIE jQuery Remote validation

+0

Przykro mi, próbowałem wszystko, co dostarczyłeś, wciąż nie ma szczęścia :( – MacLover

+0

Używam jQuery Mobile, jeśli to coś zmieni .. – MacLover

+0

Cóż, to trochę tak. Niestety, nie mam wiedzy o jQuery Mobile. w przeciwnym razie powinni czuć się swobodnie, aby nas poprawić. :) – CP510

Powiązane problemy