所以这是我的想法,我的主页上有一个登录jquery对话框阻止任何人使用该网页(在登录表单对话框后面)。我使用ajax将输入的信息提交到php页面,然后检查数据库中是否存在用户名/密码组合。如果是,我返回true然后关闭对话框(允许访问该站点)。
如何使用ajax检查我的php脚本(来自执行页面)是返回true还是false? 我假设ajax函数的成功/错误选项正在检查这个,但下面的代码似乎不起作用。
$('.login').dialog({
closeOnEscape: false,
title: false,
modal: true,
width: 'auto',
show: {effect: "fade", duration: 1500},
title: 'Login',
buttons: {
"Login": function() {
$.ajax({
async: false,
type: 'POST',
url: 'sql/login.php',
success: function(){
alert( "Success!");
},
error: function(){
alert( "Failed!" );
},
dataType: "html"
});
}
}
});
$(".login").dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove();
答案 0 :(得分:1)
没有。成功和错误选项与XHR请求的成功或失败有关。你需要你的PHP脚本输出一些东西并检查。例如,如果您的php脚本输出“ok”(即echo("ok");
),如果验证成功,您将使用ajax请求,例如此
$.ajax({
url: 'sql/login.php',
success: function(data) {
if(data=="ok") {
alert('Login successfull.');
} else {
alert('Login failed.');
}
}
});
答案 1 :(得分:1)
我所做的是在我的php结尾处使用带有true或false的variabel的回声,我在成功选项中执行了这个功能就像这样:
success: function(response){
if(response){
alert( "Success!");
}else{
alert( "Failed!" );
}
}
这对我有用,你可以把它放在php
中if($myvar){
$anothervar=1;
}else{
$anothervar=0;
}
echo $anothervar;
所以你可以这样做:
success: function(response){
if(response==1){
alert( "Success!");
}else{
alert( "Failed!" );
}
}
这是我的方式,它工作正常 希望它有用
答案 2 :(得分:0)
在你的login.php中:
if($_POST['data']){
$curData = $_GET['country'];
$query = "SELECT * FROM yourTable
WHERE tblData = '$curData'";
$result = mysql_query($query) or die;
if($result>0)
echo "<p class='checkExistance'>Data Exists</p>";
else
echo "<p class='checkExistance'>Data doesnt Exist</p>";
}
在你的javascript中:
function isSuccess(){
if($('.checkExistance').text() === "Data Exists"){
success($('.checkExistance').text()); //alert success!
}else{
success($('.checkExistance').text());
}
}
没有真正检查这是否有效,但你几乎明白了。在AJAX调用上,执行以下操作:
$.ajax({
//
..
success:isSuccess
});
or
success:function(){
if($('.checkExistance').text() === "Data Exists"){
success($('.checkExistance').text()); //alert success!
}else{
success($('.checkExistance').text());
}
}
确保在success()函数中实现alert()。希望有所帮助。
答案 3 :(得分:0)
根据您的信息,我假设您的php页面将进行验证,并使您在php脚本中返回true或false
您的代码中存在2个问题
1.你的php页面本身会返回true或false,另一方面他们不会将结果发送到ajax结果,除非你像Tomm上面说的那样发送它们
$ .sujax的2.success()和error()由请求NOT BY RESULT的成功决定,这意味着即使你的php回显“false”它也会触发success()事件,因为请求是成功的