Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
599 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  affichage enregistrements toutes les x secondes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage enregistrements toutes les x secondes

n°829380
thebounty
Posté le 23-08-2004 à 11:43:16  profilanswer
 

bonjour,
 
je démarre en php et je dois afficher 6 enregistrements (issus d'un fichier texte) par page web.
 
si j'ai moins de 6 enregistrements tout va bien.
mais si j'ai plus de 6 enregistrements il faut que j'affiche les 7°, 8° etc.
comment faire en php pour afficher ces enregistrements en utilisant une temporisation (afficher 6 enregistrements - 10 secondes d'affichage - afficher 6 enregistrements etc.)?
 
il me faudrait une solution simple car mes compétences en php sont médiocres.
 
merci

mood
Publicité
Posté le 23-08-2004 à 11:43:16  profilanswer
 

n°829403
masklinn
í dag viðrar vel til loftárása
Posté le 23-08-2004 à 11:50:40  profilanswer
 

Tu fais pas, ou alors il faut inclure un redirect avec tempo dans ton header.
 
L'idéal, c'est d'afficher tes 6 enregistrement et si t'as 7+ enregistrements un bouton pour voir la suite, tu passes un truc à la con en param et quand on clic le bouton ca affiche les [1-6] suivants, avec un bouton suivant (au cas ou tu ais 13+ enregistrements) & un bouton précédent


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°829549
thebounty
Posté le 23-08-2004 à 13:08:09  profilanswer
 

hum. j'ai dit que j'étais novice, alors un redirect un header qu'est-ce que c'est ?  
il s'agit d'un planning. y'aura personne pour cliquer. tout devra être automatisé d'où la question comment faire une tempo.
merci


Message édité par thebounty le 23-08-2004 à 13:09:03
n°829623
thebounty
Posté le 23-08-2004 à 13:54:01  profilanswer
 

undefined offset ca veut dire quoi ?

n°831065
Pheldwyn
Posté le 24-08-2004 à 18:06:27  profilanswer
 

Le redirect dans le header, c'est pas très beau (ta page va se reloader toutes les 10 secondes ...). Mais bon ça consiste à ajouter dans le code HTML généré par le PHP, une entête forçant le chargement de la page :

Code :
  1. <HEAD>
  2. <META http-equiv="refresh" content="10;lapage.htm">
  3. </HEAD>


 
Sinon, l'autre solution, c'est que ton PHP génère le tableau en javascript de tout tes enregistrements, et qu'un p'tit script javascript se charge de faire ce que tu veux (mais bon, là je te laisse te débrouiller).
 

n°831574
thebounty
Posté le 25-08-2004 à 10:06:06  profilanswer
 

c'est ce que je cherchais.
merci.

n°831763
p lejarre
Posté le 25-08-2004 à 12:09:11  profilanswer
 

thebounty a écrit :

bonjour,
 
je démarre en php et je dois afficher 6 enregistrements (issus d'un fichier texte) par page web.
 
si j'ai moins de 6 enregistrements tout va bien.
mais si j'ai plus de 6 enregistrements il faut que j'affiche les 7°, 8° etc.
comment faire en php pour afficher ces enregistrements en utilisant une temporisation (afficher 6 enregistrements - 10 secondes d'affichage - afficher 6 enregistrements etc.)?
 
il me faudrait une solution simple car mes compétences en php sont médiocres.
 
 
merci


 
 
et bien c'est pas possible. la raison en est que le php se mets en série par rapport à l'envoi de la page. lorsque la page est chargée le php est desactivé.  
 
la seule solution c'est de faire du javascript dans la page et mettre tous les enregistrements dans un timer et mettre un settimeout qui va afficher les 6 premiers, les 6 suivants, etc .....
 
donc  

Code :
  1. var nbEnrLayer = 6; // 6 enregistrements par indice;
  2. var tabEnregs = array ();
  3. tabEnregs [] = "enregistrement 1";
  4. tabEnregs [] = "enregistrement 2";
  5. tabEnregs [] = "enregistrement 3";
  6. tabEnregs [] = "enregistrement 4";
  7. tabEnregs [] = "enregistrement 5";
  8. tabEnregs [] = "enregistrement 6";
  9. tabEnregs [] = "enregistrement 7";
  10. tabEnregs [] = "enregistrement 8";
  11. ...
  12. tabEnregs [] = "enregistrement 20";
  13. tabEnregs [] = "<EOT>";
  14. var indice = 1;
  15. function enregLayer (idLAYER) {
  16. var cchaine;
  17. var i;
  18. for (i = 0; i < nbEnregsLayer; i++) {
  19. if (tabEnregs[i] == "<EOT>" ) {
  20. indice = 0;
  21. break;
  22. } else {
  23. cchaine += tabEnregs[indice+i];
  24. cchaine += "<BR />";
  25. }
  26. }
  27. document.getElementById (idLAYER).innerhtml = cchaine;
  28. }


 
mais là la taille du tableau est limitée.  
 
une autre soluce, c'est de faire des <div> positionnés aux meme coordonnées
 
 
soit :
 

Code :
  1. <div id="layer1">
  2. enreg1
  3. enreg2
  4. ...
  5. enreg6
  6. </div>
  7. <div id = "layer2">
  8. enreg7
  9. enreg8
  10. ....
  11. enreg12
  12. </div>
  13. <div id = "layer3">
  14. enreg13
  15. ...
  16. enreg18
  17. </div>


et ensuite le timer cycle en masquant le layer en cours (par display = none) en affichant le suivant et ainsi de suite. on vérifie que  
document.getelementbyid ("layer??" ) == null) pour revenir au départ.  
 
là la seule limite pour le nombre d'enregistrements à effectuer est la patience du visiteur.   [:alana21]  
 
sinon comme dit ici, tu fais une page de la forme  
 
enregs.php?min=1&max=6
tu fais un bouton suivant qui envoie vers  
enregs.php?min=7&max=12 donc ajoute 6 aux deux valeurs.
et un bouton précédent qui retire 6 à chaque valeur
 
 
une derniere soluce serait de faire un gros div qui contient tous les enregistrements au une commande css qui indique overflow scrool.
 

Code :
  1. <style>
  2. #enregs {
  3. width: 800px;
  4. height: 60px;
  5. overflow: scroll;
  6. }
  7. #enregs td {
  8. font-size: 10px;
  9. }
  10. </style>
  11. <div id = "enregs">
  12. <table>
  13. <tr><td>enreg1</td></tr>
  14. <tr><td>enreg1</td></tr>
  15. <tr><td>enreg1</td></tr>
  16. <tr><td>enreg1</td></tr>
  17. <tr><td>enreg1</td></tr>
  18. <tr><td>enreg1</td></tr>
  19. <tr><td>enreg1</td></tr>
  20. <tr><td>enreg1</td></tr>
  21. <tr><td>enreg1</td></tr>
  22. <tr><td>enreg1</td></tr>
  23. <tr><td>enreg1</td></tr>
  24. <tr><td>enreg1</td></tr>
  25. <tr><td>enreg1</td></tr>
  26. <tr><td>enreg1</td></tr>
  27. <tr><td>enreg1</td></tr>
  28. <tr><td>enreg1</td></tr>
  29. <tr><td>enreg1</td></tr>
  30. <tr><td>enreg1</td></tr>
  31. <tr><td>enreg1</td></tr>
  32. <tr><td>enreg1</td></tr>
  33. <tr><td>enreg1</td></tr>
  34. <tr><td>enreg1</td></tr>
  35. <tr><td>enreg1</td></tr>
  36. <tr><td>enreg1</td></tr>
  37. <tr><td>enreg1</td></tr>
  38. <tr><td>enreg1</td></tr>
  39. ...
  40. <tr><td>enreg1</td></tr> <!-- le 2001eme -->
  41. </table>
  42. <div>


 
 
mais attention ca marche pas dans tous les navigateurs. une autre soluce est de faire un iframe avec la page contenant les enregistrements. là ca marche partout meme si ca fait raler certains.  


Message édité par p lejarre le 25-08-2004 à 12:29:25

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  affichage enregistrements toutes les x secondes

 

Sujets relatifs
Supprimer l'affichage des warnings sur une page[html]Probleme facile => affichage de pages sans tout rafraichir
Affichage progressif [Résolu]Liste déroulante: affichage de données spécifiques
[MFC] Affichage dans une fenetre textepb affichage différent suivant navigateurs
Délai et durée d'affichage du alt d'une imgBarre navigation affichage page par page
Affichage des contacts sous outlook 97 ???gestion d'affichage par page...
Plus de sujets relatifs à : affichage enregistrements toutes les x secondes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR