Jquery Ajax PHP-如何确定PHP代码是否成功执行?
这就是我的想法,我的主页上有一个登录jquery对话框,阻止任何人使用该网页(在登录表单对话框后面)。我使用ajax将输入的信息提交到php页面,然后检查数据库中是否存在用户名/密码组合。如果是,则返回true,然后关闭对话框(允许访问站点) 如何使用ajax检查我的php脚本(来自已执行页面)是否返回true或false? 我假设ajax函数的成功/错误选项正在检查这一点,但下面的代码似乎不起作用Jquery Ajax PHP-如何确定PHP代码是否成功执行?,php,jquery,ajax,Php,Jquery,Ajax,这就是我的想法,我的主页上有一个登录jquery对话框,阻止任何人使用该网页(在登录表单对话框后面)。我使用ajax将输入的信息提交到php页面,然后检查数据库中是否存在用户名/密码组合。如果是,则返回true,然后关闭对话框(允许访问站点) 如何使用ajax检查我的php脚本(来自已执行页面)是否返回true或false? 我假设ajax函数的成功/错误选项正在检查这一点,但下面的代码似乎不起作用 $('.login').dialog({ closeOnEscape: fals
$('.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();
否。成功和错误选项与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.');
}
}
});
在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>";
}
并没有真正检查这是否有效,但你基本上明白了。在AJAX调用中,执行以下操作:
$.ajax({
//
..
success:isSuccess
});
or
success:function(){
if($('.checkExistance').text() === "Data Exists"){
success($('.checkExistance').text()); //alert success!
}else{
success($('.checkExistance').text());
}
}
请确保在success()函数中实现alert()。希望这会有所帮助。我所做的是在php的末尾添加一个echo,其中变量为true或false,我在success选项中实现了此函数,如下所示:
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!" );
}
}
这就是我做这件事的方式,而且效果很好
希望它有用根据您的信息,我假设您的php页面将进行验证,并且您让它们在php脚本中返回true或false 代码中有两个问题 1.您的php页面本身将返回true或false,另一方面,除非您像上面Tomm所说的那样发送结果,否则它们不会将结果发送到ajax结果
2.$.ajax的success()和error()是由请求的成功而不是结果决定的,这意味着即使您的php回显为“false”,它也会触发success()事件,因为请求已成功发送。只是想把它抛到一边。如果用户未经授权,您是否仅限制通过客户端方法(javascript)访问内容?如果是这样的话,你会想重新考虑这一点,因为任何有Firebug的人都可以绕过你的安全问题。那么,你对数据库的查询可能有问题
success: function(response){
if(response==1){
alert( "Success!");
}else{
alert( "Failed!" );
}
}