我不确定这是否可行,如果可能的话,我无法弄清楚如何实际做到这一点。
我想要做的是将一个复选框列表提交给.ajax()调用。该.ajax()调用将信息传递给PHP进行处理(在这种情况下,它将向所选的每个ID发送电子邮件)。
但是,我不希望页面(或该问题的.ajax()调用)等待PHP脚本完成运行。基本上我希望它传递数据并继续(并显示.dialog()框等等。)
这是诀窍:我做想要从PHP脚本获得某种类型的反馈。完成后,我希望它将数据返回给用户,可能是通过在页面顶部显示一个栏(就像StackOverflow在你收到系统消息时所做的那样),无论你在哪里,它们都显示在页面顶部在网站上。)
第一部分,显示了一个显示的复选框列表。我在确定检查哪些数据并收集数据方面遥遥领先。现在我需要弄清楚如何将它传递给.ajax()调用,以便PHP可以使用它来扫描数据库以收集各种电子邮件并开始发送消息。不太确定如何传递数据。 创建一个由id1 = XXX& id2 = XXX& id3 = XXX-and_so_forth组成的dataString似乎很愚蠢。
我愿意接受建议。
[编辑]任何人对我上面提到的部分有任何建议吗?
答案 0 :(得分:4)
Ajax请求的默认行为是它们是异步的,这意味着代码正常运行并且不等待AJAX调用的返回。
示例:
$.ajax({
url: "...",
data: "<checkboxes>",
success: function(data, xhr, status) {
// Code to add your banner when AJAX finished
}
});
// Inline code to execute whitout wait the end of $.ajax
答案 1 :(得分:0)
你可以使用asyncronous ajax调用,无论你在ajax的成功方法中保留什么逻辑都可以移出。
MakeAjaxCall()不会在success方法中写任何内容。
在makeAjaxCall()之后写下你的所有逻辑,以便两者并行发生。
makeAjaxCall(),实例化该过程 doyourlogicInParallel()...这里
答案 2 :(得分:0)
If you are making calls to a .php script with AJAX (xmlHttpReq) and use flush, this will send data to your script HOWEVER it will not set the xmlHttpReq.readyState to 4 -- which is a requirement to use the information sent (Firefox does however allow you to use the responseText property with a readyState == 3 but IE will throw an error).
我在阅读flush()
- http://www.php.net/manual/en/function.flush.php
基本上这意味着你可以通过ajax调用启动一个进程并让它返回一些值,例如echo "hello";
但是没有将readystate设置为4.所以如果你很聪明,你可以操纵你的来自PHP脚本的响应,例如在带有计时器的while循环中。