gpt4 book ai didi

php - 检查电子邮件是否已存在于数据库中 jquery +php

转载 作者:搜寻专家 更新时间:2023-10-30 23:13:43 26 4
gpt4 key购买 nike

我正在尝试验证注册表中的电子邮件地址。我想检查数据库中是否存在该地址;

我有以下功能:

function validateEmailRepeat(){
// check if email exists in the database;
var emailVal = $('#email').val();
// assuming this is a input text field

$.post('check_email.php', {'email' : emailVal}, function(data) {
if(data==1)
{
email.addClass("error");
emailInfo.text("Adress exists");
emailInfo.addClass("error");
dataExist=1;
}

else {

email.removeClass("error");
emailInfo.text("Valid adress");
emailInfo.removeClass("error");
dataExist=0;
}
});

if(dataExist==1)
return false;
else
return true;

}

check_email.php 看起来像这样:

require_once('db.php');

if (isset($_POST['email'])){
$email=mysqli_real_escape_string($con,$_POST['email']);
$sql = "SELECT * FROM users WHERE `username`='".$email."'";
$select=mysqli_query($con,$sql) or die("fail");
$row = mysqli_num_rows($select);

if ($row >0) {

echo 1;
}else echo 0 ;

}
else
echo "post error";

我是新手。所以不要太强硬。提前致谢。

李:对不起!我忘记了问题...问题是,如果我在函数形式 $.post 之外定义 var dataExist,我的函数将返回 true如果我让它像现在在函数中一样,我会得到“dataExist is not defined”错误并返回 true

Le:PHP 以我想要的方式返回预期的 1 和 0..

乐:似乎定义了

var dataExist=0;

在函数 validateEmailRepeat() 之外解决了这个问题。

如果有另一种更优雅的方式请告诉我,因为这对我来说似乎有点愚蠢。

最佳答案

问题是您不能将值返回到被调用的函数中,因为 ajax 是异步工作的。

                function validateEmailRepeat(){
// check if email exists in the database;
var emailVal = $('#email').val();
// assuming this is a input text field

$.post('check_email.php', {'email' : emailVal}, function(data) {
if(data==1){
email.addClass("error");
emailInfo.text("Adress exists");
emailInfo.addClass("error");
dataExist=1;
}else{
email.removeClass("error");
emailInfo.text("Valid adress");
emailInfo.removeClass("error");
dataExist=0;
}
$('#some_input').val(dataExist);
validateUserName();
});
}

function validateUserName() {
var input = $('#some_input').val();
if (input) {
alert("This username is already taken");// whatever
} else {
// whatever
}

};

关于php - 检查电子邮件是否已存在于数据库中 jquery +php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070635/

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