php - PHP foreach 循环中的 JQuery $.post

标签 php jquery exacttarget

我有一个表单,订阅者可以在其中选择他们想要接收的新闻通讯,然后 AJAX 表单会将结果发送到 Exact Target,并将订阅者添加到订阅者想要添加的每个列表中。

我有一个 PHP foreach 循环设置来处理这个问题。

<?php foreach ($listNumbers as $item): ?>
            var xmlData = 'Ths is the ET API call';
            $.post('ET url for API call'+xmlData);      
        <?php endforeach; ?>    

循环运行后,用户将被发送到这样的感谢页面。

$(document).ready(function() {
location.href = "thank you url";
});

大部分情况下一切正常。我使用 document Ready 是因为我想给循环足够的时间来提交 API 调用。有没有办法检测 $.post 函数何时完成?如果成功的话?然后将用户发送到感谢页面?

我发现位置 href 在代码有机会运行之前将一些用户发送到感谢页面。

谢谢, 迈克尔

最佳答案

http://api.jquery.com/jQuery.post/

有一个回调告诉您它已完成

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
  • url - 包含请求发送到的 URL 的字符串。
  • data - 随请求发送到服务器的映射或字符串。
  • success(data, textStatus, jqXHR) - 请求成功时执行的回调函数。
  • dataType - 服务器期望的数据类型。默认值:智能猜测(xml、json、脚本、文本、html)。

示例脚本,您需要跟踪所有请求是否已完成,尽管我强烈建议您编写一个新的服务器端调用,如果可以的话,您可以只调用一次。

var xhrCount = <?= count($listNumbers) ?>;
<?php foreach ($listNumbers as $item): ?>
   var xmlData = 'Ths is the ET API call';
   $.post('ET url for API call'+xmlData, null, function() {
       xhrCount--;
       if (xhrCount === 0) {
           location.href = 'myurl'
       }
   });      
<?php endforeach; ?>  

不确定,您的 count() 可能有什么问题,但您可以自己数一下;

var xhrCount = 0;
<?php foreach ($listNumbers as $item): ?>
   var xmlData = 'Ths is the ET API call';
   xhrCount++;
   $.post('ET url for API call'+xmlData, null, function() {
       xhrCount--;
       if (xhrCount === 0) {
           location.href = 'myurl'
       }
   });      
<?php endforeach; ?>  

关于php - PHP foreach 循环中的 JQuery $.post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10031655/

相关文章:

ruby - 将 savon 与 exacttarget 的 Web 服务结合使用

rendering - 精确目标中的条件渲染

laravel-5 - 如何在 Laravel 5 中集成 Packagist 的包?

php - 在 PHP 中混合引号

php - 三分之二的值会进入下一页,第一个不会

javascript - jQuery:如何使用索引或 jquery 对象获取元素内的值

javascript - 如何正确地从元素中取出文本并销毁元素?

PHP - 以零数据库调用加载页面的方法

php - 检查用户是否在其他设备上登录

jquery - jqGrid treeGrid 捕获展开折叠事件