2011-11-28 21 views
0

我有一個PHP的WHILE循環,我用來發送一批電子郵件。從PHP內部的JQuery函數雖然循環

我想要做的是有一個DIV顯示我的用戶通過jQuery發送電子郵件的當前計數。

因此,由於每次傳球都是在循環中進行的,因此它會用新計數更新一個div。我試圖避免在我的代碼中使用簡單的echo $count;,因此它不會向下滾動頁面。我的計數將約爲3000.

謝謝! Rick

+5

這是一個相當複雜的問題,涉及AJAX和多個腳本。你不能輕易地混合服務器端PHP代碼和客戶端jQuery代碼。 – Blazemonger

回答

0

所有的答案都很棒,我非常感謝! 他們都讓我思考,我想出了一個新的方法來解決我的問題。 最初,我希望我的PHP腳本在用戶等待時運行MAIL()函數。這帶來了它自己的問題......就像,如果用戶關閉瀏覽器會怎麼樣?

因此,我要做的是將信息保存到我的數據庫,然後每隔一段時間運行一次cron作業,查找未發送的郵件。當它發現一些時,它會發送它。通過這種方法,我可以立即(或在合理的時間內)發送重要郵件爆炸,並且在凌晨時間發送不太重要的郵件,以免堵塞我的服務器。然後,在我的郵件成功(或未成功)發送後,我可以向我的用戶發送更新。

謝謝大家回覆!這是所有的答案一起,讓我的大腦工作...

裏克

1

您必須有一個PHP腳本發送電子郵件,每次發送電子郵件時向數據庫寫入值(或10,20,30等的倍數,因此您不會過度使用數據庫)

然後,你需要創建另一個PHP可以在數據庫中顯示的值

最後,(可能)第3頁上使用jQuery,你可以做第2頁獲得的一個Ajax請求第二頁的輸出,您每隔X秒再次請求ajax請求

2

您正混合兩個執行階段這裏。 PHP執行serverside併發回HTML。你需要明白這裏是什麼,你的PHP要輸出一些HTML + jQuery的,然後將使用AJAX調用回另一個腳本,將做的工作的簡單和快速的單位,如發送電子郵件:

  1. index.php文件發送回到HTML + jQuery的
  2. jQuery的AJAX的調用process.php
  3. process.php處理一個電子郵件地址和發送JSON響應返回
  4. AJAX接收響應,會將其與所謂的「process.php」再次直到整個過程完成。

我不能給你真實的例子,因爲它會花費很多時間來寫下來,但你有一個好方法來做到這一點。

好運


這裏有幾個三分球,讓你開始:

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

http://ca2.php.net/json_encode

http://ca2.php.net/json_decode

有了這個,你應該是AB開始比通過完全搜索自己快一點。

1

你做錯了。

相反,你應該fork腳本,讓它在後臺運行。所述腳本應該更新狀態文件(優選地,每10封電子郵件一次)並在那裏存儲當前進度或者消息done

在事物的JavaScript方面,您直接讀取該文件的內容(如果將它保存在document_root的某個位置),或者執行一個簡單的php腳本來讀取該文件並返回狀態更新。

P.S. jQuery並不是真的需要它。

1

你基本上不能按照你建議的方式去做你的建議。

相反,你可以看看這個結構的東西:有一個JavaScript功能觸發一個PHP文件發送郵件10,然後更新的說法,我現在已經送出了10所以上寄出的X

你可以使用jquery的post()方法來調用帶有參數的另一個文件然後接收答案。