以特定间隔从jquery调用php文件

时间:2010-03-02 12:49:35

标签: php javascript jquery

我在jquery中有以下变量

var uemail="abc@domain.com,xyz@domain.com,gty@domain.com";
var subj="test message";
var text="<b>This is Email Body Text</b>";

我有一个名为“email.php”的PHP文件来发送电子邮件

<?php

      $email =$_GET['email'];
      $subject =$_GET['subj'];
      $message = $_GET['text'];;

     if(mail($email, $subject, $message, "From: $email"))
     echo "1";
     else
     echo "0";
?>

我想做的是

调用email.php我在变量uemail中有电子邮件地址的时间,并且每次将电子邮件,subj,文本传递给email.php并在页面上打印结果,每次间隔10秒间电子邮件.php称为。< / p>

  

abc@domain.com(ok)
  xyz@domain.com(错误)
  gty@domain.com(ok)

由于

3 个答案:

答案 0 :(得分:4)

var n = 1;
$.each(uemail.split(','), function() {
    var data = {email: this.valueOf(), subj: subj, text: text};

    setTimeout(function() {
        $.post('http://.../email.php', data, function(resp) {
            alert(data.email + (resp ? 'ok' : 'error'));
        });
    }, n++ * 10000);
});

这样你就不用担心停止间隔了。

答案 1 :(得分:2)

我想你想在你的javascript中使用这样的一行: setInterval(function() {$.ajax{url:'url of emails.php'};}, 10000);

这将每10000毫秒向php页面发出一个ajax请求。

答案 2 :(得分:1)

如果您不希望多个计时器并行运行,这是另一种方法。

    var uemail="abc@domain.com,xyz@domain.com,gty@domain.com";

    uemail = uemail.split(',');

    var interval;
    var counter = 0;
    var check = function() { 
                            if(counter < uemail.length) {
                                // Send email post 
                                counter++; 
                            } else {
                                clearInterval(interval);
                            }
                };

    interval = setInterval(check,10000);