Le problème c'est que la boucle while s'éxécute sans attendre que la fonction récursuve JavaScript soit terminée. Et donc elle (la boucle while) se termine avant la fin de la première éxécution de la fonction slide. J'ai donc seulement le premier paragraphe qui s'affiche et défile.
Il faut revoir les bases.
PHP s'exécute côté serveur.
JS s'exécute côté client.
En clair (dans une utilisation classique) :
1. Le client demande la page.
2. Le serveur voit que c'est une page php, il l'exécute.
3. La page résultat est envoyée au client.
4. Le client voit qu'il y a du JS, il l'exécute (ou pas).
=> Forcément, la boucle PHP
while sera exécutée avant le code JS...
Tu veux afficher les paragraphes un par un, c'est bien ça ?
Le plus simple =>
1. PHP génére les paragraphes en leur donnant un
ID adéquat (genre
<p id="defil_$NumeroParagraphe">)
2. Le JS de la page générée va s'occuper de la présentation :
- Tu crées une fonction AfficherParagraph(numero_paragraphe) qui va cacher tous les paragraphes sauf celui passé en paramètre.
- Au démarrage, tu passes la fonction pour le paragraphe 1.
- Après une temporisation tu rappelles la fonction pour le paragraphe suivant.
Sinon, tu peux jouer avec de l'AJAX, mais ça devient plus compliqué...
[quote="Helphie"]Le problème c'est que la boucle while s'éxécute sans attendre que la fonction récursuve JavaScript soit terminée. Et donc elle (la boucle while) se termine avant la fin de la première éxécution de la fonction slide. J'ai donc seulement le premier paragraphe qui s'affiche et défile.[/quote]
Il faut revoir les bases.
PHP s'exécute côté serveur.
JS s'exécute côté client.
En clair (dans une utilisation classique) :
1. Le client demande la page.
2. Le serveur voit que c'est une page php, il l'exécute.
3. La page résultat est envoyée au client.
4. Le client voit qu'il y a du JS, il l'exécute (ou pas).
=> Forcément, la boucle PHP [b]while[/b] sera exécutée avant le code JS...
Tu veux afficher les paragraphes un par un, c'est bien ça ?
Le plus simple =>
1. PHP génére les paragraphes en leur donnant un [b]ID[/b] adéquat (genre [b]<p id="defil_$NumeroParagraphe">[/b])
2. Le JS de la page générée va s'occuper de la présentation :
- Tu crées une fonction AfficherParagraph(numero_paragraphe) qui va cacher tous les paragraphes sauf celui passé en paramètre.
- Au démarrage, tu passes la fonction pour le paragraphe 1.
- Après une temporisation tu rappelles la fonction pour le paragraphe suivant.
Sinon, tu peux jouer avec de l'AJAX, mais ça devient plus compliqué...