0

連絡先の大規模なリストに電子メールを送信しようとしています。送信の程度を測定できるようにしたいです。つまり、電子メールの送信中に送信の割合を示す読み込みバーを表示します。以下はhtmlです

<div id="loading" style="height:20px;"></div>

次にJavascriptコード

$.ajax({
    type: "POST",
    url: "engine/send-mail.php",
    data: "action=sendmail",
    success: function (Databack) {
        $('#loading').css('width', Databack);
    }
});

PHPサーバー側のコードに注意してください

$query = "SELECT email FROM clientsdata";
while ($data = mysql_fetch_array($query)) {
    extract($data);
    mail_user($email, $subject, $message);
    $no++;
    echo $no."px;";
}

プログレスバーに似ていますが、機能しません。

4

5 に答える 5

0

スクリプトが終了したときにのみphpが応答するため、そのようにすることはできません。

IDをデータベースの各電子メールにリンクすることで、その後、JavaScriptのUIDの配列をループして、ajax呼び出しを連鎖させることができます。

于 2013-02-07T14:06:35.903 に答える
0

データが入ってきたときに jQuery で ajax を表示する方法については、この投稿をご覧ください。

于 2013-02-07T14:21:12.073 に答える
0

たとえば、クエリを実行できます。すべてではなく 40 個のメール アドレス。次に、電子メール スクリプトを複数回呼び出します。各 ajax 呼び出しで、次の 40 個の電子メールを送信します。これにより、進捗バーを非常に簡単に設定できます。おそらく、送信するすべての電子メールを含む電子メールキューをデータベースに作成し、各 ajax 呼び出しにより、送信された電子メールがキューから削除されます。

于 2013-02-07T14:22:04.677 に答える
0

Web ページの視覚的な進行状況バーを更新するために使用できる PHP クラスは多数あります。

例: http://www.m4d3l-network.com/developpement/php/simple-progress-bar/

Zend Framezork には、この機能が組み込まれています。

于 2013-02-07T14:08:30.697 に答える
-1

非同期リクエストが必要です。これには、ロング ポーリングや Web ソケットなど、いくつかの方法があります。フレームワークがあるかどうかはわかりませんが、この投稿は関連しているようです。

于 2013-02-07T14:07:38.837 に答える