繁体   English   中英

使用Jquery .post方法进行验证

[英]Using Jquery .post method for validation

我正在制作小项目,现在正在注册模块上工作。 我使用Jquery .post方法调用页面,以检查输入的数据是否正确。 一切正常,但如果数据不正确,它会显示该消息,但也会注册用户。 这是js代码:

$("#name").keyup(function(){  
  $.post("check/user_check.php" , {  
    username: $("#name").val()  
   }, function(response)    {  
     $("#validateTips").fadeIn("slow");  
     $("#validateTips").html(response);  
   });  
});

而user_check.php是:

<?php
include "config.php";
$user = $_POST['username'];


$user_query = mysql_query("SELECT username FROM users WHERE username='$user'");


if(strlen($user) < 3)
{
    print "<span id='wrong'>username is too short</span>";
}

还有其他情况,时间太长了,已经采取了,但是我想你明白了什么。 因此,问题是,如果user_check.php打印用户名不正确,该如何防止注册?

返回错误消息后,请停止执行:

if(strlen($user) < 3)
{
    print "<span id='wrong'>username is too short</span>";
    die(); //Stop right here
}

好了,您可以通过多种方式解决它,但是对于初学者来说,我建议您以JSON而不是HTML格式发送响应,并在客户端处理格式。

区分成功和错误的一种简单方法是在服务器上设置适当的HTTP 状态代码

简而言之,只需在服务器上设置4XX或5XX代码,您将最终遇到jQuery ajax错误/失败回调。

您的代码如下所示:

$.post('check/user_check.php',{ username: $("#name").val() }).done(function(data)
    //handle success
}).fail(function(error){
    //handle failure
    console.log(error.responseText);
});

在您的PHP代码中,您只需设置状态代码即可在出现问题时指示错误:

header('HTTP/1.1 400 Bad Request', true, 400);

或者如果您使用的是PHP> = 5.4:

http_response_code(400);

我在这里就此主题发布了更详细的答案。

在您的jquery代码中使用off()(对于php为die())以停止执行off()的文档: http : //api.jquery.com/off/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM