我在jquery中使用ajax来检查数据库中是否存在该值。我们可以使用普通选择查询(php),但如果值存在,我必须进行警告弹出。这就是我决定这种方式的原因。我几乎完成了,但问题是由于在jquery中返回false,它不允许下一行,因为数据库中不存在名称。我怎样才能在那个特定的地方给予回报?
$.ajax({
type:"post",
url:"actionn.php",
data:"name="+name,
success:function(data){
alert(data);
//if data does not exist means it should get out of ajax function
}
});
return false; //if data exists
if(name=="") //data does not exist means it should come here
{
alert("Please enter your Name");
return false;
}
答案 0 :(得分:0)
刚刚把这个
返回false; //如果数据存在
在此
中success:function(data){
alert(data);
//if data does not exist means it should get out of ajax function
return false; //if data exists - //LIKE THIS
}
答案 1 :(得分:0)
您可以在成功函数中使用if
条件,如:
success:function(data) {
if(data) {
alert(data);
}
else {
alert("Please enter your Name");
return;
}
}
请参阅$.ajax
的文档答案 2 :(得分:0)
正如t.niese在return true
内指出success
(或错误)并没有做你预期会做的事情。 (另见你问题下的第一条评论)。
实现目标的最直接的方法可能是在success
内存在用户(不存在)时使用您拥有的任何代码。
所以基本上移动逻辑/代码当用户存在/ success
回调中不存在时该做什么。
有关更多见解,您应该阅读评论中提供的一些链接
编辑:
我认为您错过了异步请求的概念 - 给出代码中的注释
$.ajax({
type:"post",
url:"actionn.php",
data:"name="+name,
success:function(data){
alert(data);
//if data does not exist means it should get out of ajax function
//ajax function has already "exited" here is the success callback
//this code is executed when the request to action.php was succesfull
//as in response code is 200/OK
}
});
//return false; //if data exists
//nope, you don't know if data exists this code will be
//executed _while_ (!) a request to action.php is made!
//there is no guarantee when this request returns and you can't write code
//here which relies on the response
//if(name=="") //data does not exist means it should come here
//{
// alert("Please enter your Name");
// return false;
//}
你真正想写的是这样的:
$.ajax({
type:"post",
url:"actionn.php",
data:"name="+name,
success:function(data){
if(name==""){
alert("Please enter your Name");
}else{
alert("Your name is: "+data);
}
}
});
酥脆而短暂。所有依赖于服务器响应的逻辑都是在 success
callack中处理。 $.ajax
之后没有代码,它以任何方式依赖于data
。
请不要return
进入$.ajax.success
- 这不是您认为的
有关进一步的问题,我想邀请您(再次)阅读有关Ajax调用的信息:https://stackoverflow.com/a/14220323/1063730我认为关于重组代码的段落对您来说非常有趣。