我有一个PHP WHILE循环,我用来发送一批电子邮件。
我想做的是让DIV向我的用户显示当前通过jQuery发送的电子邮件数量。
因此,当每次传递都在循环中进行时,它将使用新计数更新单个div。我试图避免在我的代码中使用简单的echo $count;
,因此它不只是向下滚动页面。我的数量约为3000。
谢谢! 瑞克
答案 0 :(得分:2)
这里混合了两个执行阶段。 PHP执行serverside并发送回HTML。你需要理解的是你的PHP应该输出一些HTML + jQuery然后使用AJAX来回调另一个脚本,这个脚本将执行简单快速的工作单元,例如发送电子邮件:
我不能给你真实的例子,因为它需要花费很多时间来写下来,但你对一般的方法有一个好主意。
祝你好运以下是一些可以帮助您入门的建议:
http://api.jquery.com/jQuery.post/
http://ca2.php.net/json_encode
http://ca2.php.net/json_decode
有了这个,你应该能够比完全搜索自己快一点。
答案 1 :(得分:1)
你必须有一个PHP脚本发送电子邮件,每次发送电子邮件时都会向数据库写入一个值(或者是10,20,30等的倍数,所以你不要过度使用数据库)
然后你需要创建另一个可以在数据库中显示值的PHP
最后,在(可能的)第3页上使用jQuery,您可以执行第2页的ajax请求获取第2页的输出,您每隔X秒重新请求ajax请求
答案 2 :(得分:1)
你做错了。
相反,您应该fork脚本并让它在后台运行。所述脚本应更新状态文件(最好每10封电子邮件一次)并存储当前进度或消息done
。
在JavaScript方面你要枯萎的东西直接读取该文件的内容(如果你把它放在document_root
里面的某个地方),或者执行一个简单的php脚本来读取该文件并返回状态更新。 / p>
P.S。任何一个都不需要jQuery。
答案 3 :(得分:1)
你基本上不能以你建议的方式做你所建议的事情。
相反,你可以看看这个结构的东西:有一个javascript函数触发一个php文件发送10封邮件,然后更新说,我现在已经发出了10个以上 x 的邮件。
你可以使用jquery的post()方法进行触发,调用带有一些参数的另一个文件然后接收答案。
答案 4 :(得分:0)
所有答案都很棒,我真的很感激! 他们都让我思考,我想出了一个新方法来解决我的问题。 最初,当用户等待时,我将让我的PHP脚本运行MAIL()函数。这带来了它自己的问题......比如,如果用户关闭了他们的浏览器怎么办?
所以,我要做的是将信息保存到我的数据库,然后经常运行cron作业,寻找未发送的邮件。当它找到一些时,它会发送它。通过这种方法,我可以立即(或在合理的时间内)发送重要的邮件爆炸,并在凌晨发布不那么重要的邮件,以免堵塞我的服务器。然后,在我的邮件成功(或未成功)发送后,我可以向用户发送更新。
感谢所有回复的人!这是所有的答案,让我的大脑工作......
瑞克