jQuery Validate remote method usage to check if username already exists

允我心安 提交于 2019-11-25 22:06:40

问题


I want to validate if username exists in database using jQuery.validate so here\'s what I have so far:

jQuery:

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

check-username.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);
?>

This code always shows an error that the username is taken even if it\'s not.

I\'m using jQuery Mobile 1.9.1

Thanks in advance.


回答1:


I've managed to get this to work by changing the PHP technique I was using, here's my 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;
?>

Thanks everyone here for your help :)




回答2:


I have two resources for to look at.

Official example from the validate plugin: http://jquery.bassistance.de/validate/demo/milk/

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

The possible solution is that the response does not need to be json encoded as far as I can tell. Since json needs key value pairs, suppling just the value won't work. So try to just echo it out as 'true' or 'false' strings.

Second, the validate uses GET for the form submission method, not POST.

NOTE: JUST FOUND POSSIBLE SOLUTION QUESTION jQuery Remote validation



来源:https://stackoverflow.com/questions/16577120/jquery-validate-remote-method-usage-to-check-if-username-already-exists

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!