PHP - AJAX & MYSQL

WRInaute passionné
Bonjour,

Je cherche à développer une application pour envoyer mes newsletters... et je souhaiterai que cela soit "sexy" pour l'admin, c'est à dire moi...

Ma liste d'emails est située dans ma base MySQL
Pour chaque envoi je souhaite pouvoir savoir/monitorer le statut de l'envoi de la newsletter:
- Savoir si la newsletter a été envoyée à l'ensemble de la liste (si le systeme s'est arreté lors de l'execution du script...)

Jusque la tout va bien, je pense avoir toutes les billes de mon coté. La ou ça se corse un peu c'est ce moment:

Lors de l'envoi de la newsletter, je souhaiterai afficher en temps réel un statut (progress bar) de l'execution du script.
Il me faut donc faire un UPDATE de ma table MySQL à chaque fois qu'un email est envoyé et récuperer le statut d'avancement.

Dans la page "A" j'ai:
- mon formulaire de rédaction de la newsletter
- ma liste d'emails (récupérée de ma base MySQL)

Dans la page "B" j'ai:
- mon code javascript et mon XMLHTTPREQUEST

Dans la page "C":
- mon script d'envoi d'email (avec une "boucle" de type "for" pour parcourir l'ensemble de mes emails)

Le problème, c'est que je veux afficher le statut de progression dans ma page "A" et ne pas recharger la page pour l'execution du script...

Donc logiquement, je devrais inserer encore une étape de XMLHTTPREQUEST / AJAX dans ma page "C" pour mettre à jour mon statut...

J'ai l'impression que je pars dans quelque chose de très compliqué et qu'il existe une methode plus simple....
Une idée....? Une piste...? Un bout de code simplifié?

Un grand merci par avance!

Anto
 
WRInaute discret
Bonjour

Sans rentrer des considérations de lenteurs :

Un truc assès simple serai de mettre à jours un fichier txt avec le numéro de l'envoi actuel (ta page C)

Suffit ensuite de créer une page D et d'y faire appel toutes les x sc qui lui charge le fichier txt et affiche n / Total

Sky
 
WRInaute passionné
Pour ceux que ça peut interesser:

Dans ma page "A":
- Formulaire d'envoi
- fonctions javascripts pour ajax (xmlhttprequest)
=> Quand le formulaire est soumis, deux process ajax sont lancés:
----- Boucle d'envoi des emails
----- Une fonction avec un timeout qui va voir toute les secondes ou en est l'envoi.
---------- Rafraichissement d'une DIV affichée sur la page en cours (progression en pourcentage)
---------- Arrêt de la fonction si la progression stagne ou si la progression atteint 100%

Ca fonctionne....!
 
Discussions similaires
Haut