假设我有一个名为form.php的页面。然后我点击一个名为&#34的按钮;添加按钮"。此按钮触发由jquery函数检测到的事件。 jquery函数对add.php进行ajax调用。
在add.php中,有一些代码可以检查数据库中是否存在特定记录。如果确实发现记录存在,我想做以下事情。
我怀疑这是不可能的,因为在收到来自php,AFAIK的回复后,ajax无法回复当前正在执行的php脚本。
我是否正确或有办法做到这一点?
答案 0 :(得分:1)
您必须在ajax请求中添加一个参数,例如override
true
和false
。默认情况下/首先请求您将其设置为false
。然后add.php执行默认设置并返回exists
。
用户做出决定。如果他想覆盖,请使用override
参数再次向true
发送ajax请求。你的add.php会注意到参数,并做任何必须做的事情。
使用完成回调将ajax处理程序包装在自己的函数中。因此,您可以根据需要重复使用该请求。非常简单,也不需要双重代码......
答案 1 :(得分:0)
当ajax调用成功完成时,第一个ajax调用的List<String> ordered = studentMap.entrySet().stream()
.sorted((e1, e2) -> e2.getValue().getAverage().compareTo(e1.getValue().getAverage()))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
函数执行,所以当你的php脚本完全完成时。
如果您想要做其他事情,则需要制作新的ajax请求。这可能是相同或另一个脚本,发送不同/新/附加参数。
请注意,必须确保在没有第一个脚本完成的情况下无法调用第二个脚本,例如通过设置和检查过期的会话变量。
答案 2 :(得分:0)
$.post('add.php',$(this).serialize())
.done(function(result){
var r = confirm("This record already exist, do you wish to overright");
if(result == 'exist'){
if (r == true) {
$.post('update.php',$(this).serialize()).done(function(r){
console.log(r);
});
} else {
return false;
}
}else{
console.log(result)
}
});