/ / jQuery Sprawdź poprawność użycia zdalnej metody, aby sprawdzić, czy nazwa użytkownika już istnieje - php, jquery, mysql, jquery-validate, nazwa użytkownika

jQuery Sprawdź poprawność użycia metody zdalnej, aby sprawdzić, czy nazwa użytkownika już istnieje - php, jquery, mysql, jquery-validate, username

Chcę sprawdzić, czy nazwa użytkownika istnieje w bazie danych za pomocą jQuery.validate, więc oto, co mam do tej pory:

jQuery:

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

sprawdź-nazwa_uż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 zajęta, nawet jeśli tak nie jest.

Używam jQuery Mobile 1.9.1

Z góry dziękuję.

Odpowiedzi:

6 dla odpowiedzi № 1

Udało mi się to uruchomić, zmieniając technikę PHP, której używałem, oto moje 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ękuję wszystkim za pomoc :)


2 dla odpowiedzi nr 2

Mam dwa źródła do obejrzenia.

Oficjalny przykład z wtyczki validate: http://jquery.bassistance.de/validate/demo/milk/

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

Możliwym rozwiązaniem jest to, że odpowiedź nienie trzeba być zakodowanym w formacie json, o ile wiem. Ponieważ json potrzebuje par klucz-wartość, dostarczanie tylko wartości nie zadziała.Więc spróbuj po prostu powtórzyć to jako ciągi „prawda” lub „fałsz”.

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

UWAGA: WŁAŚNIE ZNALEZIONO MOŻLIWE ROZWIĄZANIE PYTANIE jQuery Zdalna walidacja