Merci pour vos réponses.
Et merci pour le lien sur les lightbox, je ne savais pas qu'elles pouvaient aussi afficher du contenu web.
J'ai pu retravailler un peu ce soir sur mon code, et je pense que la question que j'ai posée dans ce post ne correspond pas tout à fait à mon vrai souci. Je vais donc essayer de le redécrire de façon plus précise :
J'ai aujourd'hui une page web avec un bouton. Si je clique sur ce bouton, je lance une requête ajax avec jquery pour exécuter une page php :
$("#captureButton").click( function() {
// On enlève le bouton de lancement
$("#startCapture").hide();
// On affiche le loader
$("#loader").show();
// On execute la capture
jQuery.ajax({
type: "POST",
url: "captureImages.php",
dataType: "html",
cache: false,
async: false,
data: {},
success: function(msg){
$("#captureArea").html($("#captureArea").html()+msg);
},
error: function(msg){
$("#captureArea").html($("#captureArea").html()+msg);
}
});
// On cache le loader
$("#loader").hide();
});
Dans ma page 'captureImages.php', j'ai une boucle 'for' qui effectue un traitement.
Après chaque traitement, je fais un "echo" du résultat, toujours dans la boucle.
Seulement voilà, les "echo" ne s'affiche pas au fur et à mesure que le traitement est effectué.
Ils s'affichent tous d'un coup à la fin de la boucle for, quand le contenu de la page php est totalement exécuté.
Je n'ai malheureusement pas le temps (vu l'heure) de faire des tests plus poussés.
Mais je me demande d'où vient mon souci : est-ce qu'il est côté js : j'attends le statut "success" pour afficher le contenu de ma page dans la div prévue à cet effet ?
Je comprends le statut 200 comme étant la réussite du chargement de la page et donc la bonne exécution du code php. Mais peut-être ai-je tort ?
Ou est-ce qu'il est côté php ?
Je pense que c'est plutôt ce dernier cas qui est la cause de mon problème :
mes traitements sont assez longs, la boucle met donc un certain temps pour s'exécuter, et je pense que les "echo" ne s'affichent qu'une fois la page totalement exécutée ....
Vous allez me dire que ce sont les bases de php ...
Une solution serait peut-être de remonter ma boucle 'for' d'un niveau et la mettre dans le js : ainsi, dans le 'for', je pourrais exécuter une requête ajax, à la fin de laquelle je pourrais ajouter le résultat à ma div #captureArea.
Le souci est que ma page php 'captureImages.php' pourra être appelée aussi en crontab, je dois donc garder ma boucle 'for' à l'intérieur de cette page ...
En fin de compte, ça ne sera peut-être pas possible d'avoir exactement la même page php pour le traitement sur mon site web via le bouton, et pour ma table de cron ...
Enfin bon, la nuit porte conseil

.
Encore merci pour vos réponses.
Modifié par Shadowrus (26 Oct 2011 - 02:22)