Ajax在ajax调用后将响应发送回php

时间:2016-06-28 07:38:25

标签: javascript php jquery ajax response

假设我有一个名为form.php的页面。然后我点击一个名为&#34的按钮;添加按钮"。此按钮触发由jquery函数检测到的事件。 jquery函数对add.php进行ajax调用。

在add.php中,有一些代码可以检查数据库中是否存在特定记录。如果确实发现记录存在,我想做以下事情。

  • 发送响应字符串"存在"到ajax。
  • .done()函数中的ajax将执行一个提示符"此记录已存在,您是否希望直截了当?#/ li>
  • 如果用户取消了提示,则不应再发生任何事情并且应该完成ajax调用。
  • 如果用户点击" ok",我希望通知php脚本,并使用form.php中的数据执行更新语句。

我怀疑这是不可能的,因为在收到来自php,AFAIK的回复后,ajax无法回复当前正在执行的php脚本。

我是否正确或有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

您必须在ajax请求中添加一个参数,例如override truefalse。默认情况下/首先请求您将其设置为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)
 }

});