Javascript jqueryajax函数不起作用?
我正在为我的网站开发一个简单的登录表单。为了做到这一点,我想使用ajax连接php来验证用户。然而,要做到这一点,我无法从ajax获得输出Javascript jqueryajax函数不起作用?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在为我的网站开发一个简单的登录表单。为了做到这一点,我想使用ajax连接php来验证用户。然而,要做到这一点,我无法从ajax获得输出 <script> function submitForLogin() { $.ajax({ type: "POST", url: "php/login.php", data: { email: "exampl
<script>
function submitForLogin()
{
$.ajax({
type: "POST",
url: "php/login.php",
data: { email: "example@abc.com",password:"123" }}).done(function(data){alert(data);});
}
</script>
函数submitForLogin()
{
$.ajax({
类型:“POST”,
url:“php/login.php”,
数据:{电子邮件:example@abc.com,密码:“123”}).done(函数(数据){alert(数据);});
}
当用户单击登录按钮时,它调用submitForLogin()函数
上面是我放在login.html文件中的部分代码。为了验证这是否有效,我简单地用硬编码值替换了电子邮件和密码的数据值
注:example@abc.com以及存储在Wamp服务器数据库中的电子邮件和密码。
这是PHP文件:
<?php
$userEmail=$_POST['email'];
$userPass=$_POST['password'];
$servername ="localhost";
$username="root";
$password="";
$dbname="AS2014459";
//To create a connection
$con = mysqli_connect($servername,$username,$password,$dbname); //check connection
if(!$con){
die("Connection failed: ".mysqli_connect_error());
}
$sql="SELECT Email,Password FROM USERTABLE WHERE Email='".$userEmail."'";
$results=mysqli_query($con,$sql);
if(mysqli_num_rows($results)>0)
{
echo "userExist";
}
else
{
echo "fakeUser";
}
mysqli_close($con);
?>
您需要包含请求成功时的函数,其中包括响应
$.ajax({
type: "POST",
url: "php/login.php",
data: { email: "example@abc.com",password:"123" },
success:function(data){
alert(data)
};
});
AJAX
调用中的data
是JSON
格式的。
在php脚本中,应使用json解码
,如下所示
$data = file_get_contents("php://input");
$data = json_decode($data,true);
$userEmail=$data['email'];
$userPass=$data['password'];
我希望这对你有帮助。您的登录将按预期工作在我的机器上尝试此代码。不要忘记放置Jquery文件。
PHP(ajax.PHP):
函数submitForLogin()
{
警报(“23”);
var email=document.getElementById(“txtUserName”).value;
var password=document.getElementById(“txtPassword”).value;
$.ajax({
类型:“POST”,
url:“login1.php”,
数据:{电子邮件:电子邮件,密码:密码},
成功:功能(响应){
警报(响应);
}
});
}
服务器端(login1.php):
更改php文件,如下所示:
<?php
$userEmail=$_POST['email'];
$userPass=$_POST['password'];
$servername ="localhost";
$username="root";
$password="";
$dbname="AS2014459";
//To create a connection
header('Content-type: application/json');
$con = mysqli_connect($servername,$username,$password,$dbname); //check connection
if(!$con){
die("Connection failed: ".mysqli_connect_error());
}
$sql="SELECT Email,Password FROM USERTABLE WHERE Email='".$userEmail."'";
$results=mysqli_query($con,$sql);
if(mysqli_num_rows($results)>0)
{
$res = "userExist";
$data = json_encode($res);
echo $data;
die();
}
else
{
$res = "fakeUser";
$data = json_encode($res);
echo $data;
die();
}
mysqli_close($con);
?>
尝试此函数submitForLogin(){$.ajax({type:“POST”,url:“php/login.php”,数据:{email:“example@abc.com,密码:“123”},成功:函数(响应){alert(响应);}}}}您是否检查了控制台中的错误和网络选项卡以了解AJAX发生了什么?您对SQL注入持开放态度。参数化。@Lalit仍然没有发生任何事情。然后你在某个地方输入了一个错误。您的实际代码中还有其他JavaScript吗?OP使用的是.done()
。另外,不推荐使用。success
。仍然不提供任何信息:(很抱歉,我没有意识到done函数。但是我研究了它,它只有$.ajax({}).success(function(){…});这是不推荐的,不是success:function(){…}如果OP甚至没有收到返回数据的警报,这会做什么?非常感谢。这就是我得到的。但是代码结束时,我得到了UserExist message.C:\wamp64\www\WebProject\php\login.php:2:array(size=2)'email'=string'samitha@abc.com'(长度=15)'password'=字符串'123'(长度=3)UserExist但现在也没有给出任何信息:3现在的输出是什么?
<html>
<head>
<script src="jquery.min.js"></script>
<script>
function submitForLogin()
{
alert("23");
var email = document.getElementById("txtUserName").value;
var password = document.getElementById("txtPassword").value;
$.ajax({
type: "POST",
url: "login1.php",
data: { email: email,password:password },
success : function(response){
alert(response);
}
});
}
</script>
</head>
<body>
<input type="text" placeholder = "Enter user name" id="txtUserName"/>
<input type="password" placeholder = "Enter password" id="txtPassword"/><br>
<input type="button" onclick="submitForLogin();" value="Login"/>
</body>
</html>
<?php
var_dump($_POST);
?>
<?php
$userEmail=$_POST['email'];
$userPass=$_POST['password'];
$servername ="localhost";
$username="root";
$password="";
$dbname="AS2014459";
//To create a connection
header('Content-type: application/json');
$con = mysqli_connect($servername,$username,$password,$dbname); //check connection
if(!$con){
die("Connection failed: ".mysqli_connect_error());
}
$sql="SELECT Email,Password FROM USERTABLE WHERE Email='".$userEmail."'";
$results=mysqli_query($con,$sql);
if(mysqli_num_rows($results)>0)
{
$res = "userExist";
$data = json_encode($res);
echo $data;
die();
}
else
{
$res = "fakeUser";
$data = json_encode($res);
echo $data;
die();
}
mysqli_close($con);
?>
$.ajax({
type: "POST",
url: "php/login.php",
data: { email: "example@abc.com",password:"123" },
success:function(data){
alert(data);
};
});