jQuery ajax弹出对话框,来自jQuery UI对话框的AJAX调用

我正在使用jQuery UI模式对话框在我的html和PHP脚本之间进行交互的用户登录系统上工作。最近,我将我的所有用户功能都移到了一个PHP文件中,从我之前在我的标题标记中找到它们的位置。来自jQuery UI对话框的AJAX调用

如果有人输入有效的用户名/密码,我可以获得登录功能,但现在我正在考虑其他可能性,即某人输入了有效的用户名,但密码不正确,或者他们输入了不存在的用户名。

我遇到的问题是在对话脚本上调用AJAX。我想提交登录表单到相同的页面user.php,并且要么登录一个用户,要么返回一个错误消息来填充同一个对话框上的div。

现在,我的代码将返回一条错误消息,但它也会返回用户表单的副本。不知道我在这里做错了什么...

任何输入,将不胜感激。

编辑:决定继续并发布user.php的全部内容,因为根据一个答案进行更改,使此文件添加的html完全消失。现在我猜,大概有几件事我做错了:

//if user is logged in, show name and Log Out option, else show Log In and Sign Up options

if(isset($_COOKIE["user"])) {

setSessionUserData($_COOKIE["user"]);

echo "

Logged in as {$_SESSION["username"]}";

echo "

 | ";

echo "

Log Out";

} else {

echo "

Log In";

echo "

 | ";

echo "

Sign up";

}

?>

Username

Password

Are you sure you want to log out?

$(function() {

var username = $("#username"),

password = $("#pw"),

loginFields = $([]).add(username).add(password);

$("#login_link").click(function() {

$("#login_dialog").dialog("open");

});

$("#logout_link").click(function() {

$("#logout_dialog").dialog("open");

});

$("#login_dialog").dialog({

autoOpen: false,

height: 200,

width: 250,

resizeable: false,

modal: true,

buttons: {

Submit: function() {

$.post("auth.php",

{

username: $("#username").val(),

password: $("#pw").val()

},

function(result) {

if(result=='success'){

window.location='Practice.php';

}

else {

$(".error").html(result);

}

}

)

},

Cancel: function(){

$(this).dialog("close");

}

},

close: function() {

loginFields.val("");

}

});

$("#logout_dialog").dialog({

autoOpen: false,

modal: true,

height: 150,

resizeable: false,

buttons: {

Okay: function() {

window.location = "logout.php";

},

Cancel: function() {

$(this).dialog("close");

}

}

});

});

function setSessionUserData($cookie) {

$con = connect();

$query = "SELECT * FROM practice_user WHERE userid = '$cookie'";

$result = mysqli_query($con, $query);

$userData = mysqli_fetch_array($result);

$_SESSION["username"] = $userData["username"];

$_SESSION["fname"] = $userData["first_name"];

$_SESSION["lname"] = $userData["last_name"];

}

?>

...和PHP:

if($_SERVER["REQUEST_METHOD"] == "POST") {

$user = test_input($_POST["username"]);

$pass = test_input($_POST["password"]);

//check if correct login

if (chkLogin($user, $pass)) {

$id = getUser($user, $pass);

setUserCookie($id);

header("Location: Practice.php");

}

//check if username exists but incorrect password entered

else if (chkUser($user)) {

echo "Username and password do not match";

}

//Or else return that username doesn't exist

else {

echo "Username does not exist";

}

}

有在我的代码等功能处理验证等。

如果我需要发布这些内容,请让我知道。

+0

你是什么意思“返回用户表单的副本”?它看起来像这个PHP代码只是发出重定向或回显一个字符串。我没有看到任何其他潜在产出。代码中是否有其他输出未显示?我不清楚这里发生了什么。 –

+1

在你的PHP你做了成功的重定向,为什么不只是返回成功,并在JavaScript中做重定向? –

+0

在这个特定的文件中有很多代码。我在这里发布的内容仅涉及登录功能。其余的是验证功能和其他功能的代码(注销,创建账户等)。 我认为问题在于我如何处理PHP中的事情。我确实希望它重定向成功......我可能没有正确地执行AJAX ...或PHP。我不太确定:/ –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值