gpt4 book ai didi

php - 检查用户名是否存在,然后我要更新

转载 作者:行者123 更新时间:2023-11-29 12:59:42 26 4
gpt4 key购买 nike

如果您想更改,我有一个代码可以检查用户名是否可用。但现在我看到,如果您更新其他内容(例如密码),您可以假设保存为用户名已存在。下面列出的是我使用的代码,正如你所看到的,我试图想一些东西,但根本不顺利。

PHP

$sql = "Select * FROM table WHERE Slug = '$slug' AND ID ='$id' LIMIT 1";
$query = mysql_query($sql);

if(mysql_num_rows($query)>0){
echo 'true';
}else{
$e_sql = "Select * FROM table WHERE Slug = '$slug'";
$e_query = mysql_query($e_sql);
if(mysql_num_rows($e_query)>0){
echo 'false';
}else{
echo 'false';
}
}

Jquery/Javascript

 var response;
$.validator.addMethod(
"uniqueUserName",
function(value, element) {
$.ajax({
type: "POST",
url: "User.php",
data: {
'slug': value,
'id': <?php echo $id; ?>
},
dataType:"html",
success: function(msg)
{ console.log(msg);
response = ( msg == 'true' ) ? true : false;

}
});
return response;
},

"This Name is already used!"
);

$("#addSurvey").validate({
rules: {
name: {
required: true,
uniqueUserName: true
},
}
});

最佳答案

基本上问题出在您的 $.ajax 请求中。

如您所知,$.ajax 默认情况下执行异步 HTTP (Ajax) 请求。

最简单的解决方案是使请求同步。

要使请求同步,您应该设置选项async: false - 在这种情况下,代码将线性执行,并且仅当ajax请求完成时您才会得到返回响应; .

所以基本上将 ajax 调用的一部分更改为:

 $.ajax({
type: "POST",
url: "User.php",
async: false,
data: {
'slug': value,
'id': <?php echo $id; ?>
},
dataType:"html",
success: function(msg){
response = msg === 'true';
}
});
<小时/>

可能有用:

<强> jQuery.ajax() Documentation

关于php - 检查用户名是否存在,然后我要更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23519619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com