Pk ça boucle pas :'(

Pk ça boucle pas :'( - HTML/CSS - Programmation

Marsh Posté le 12-02-2006 à 13:08:54    

voila le script,
 
et le résultat : "2"
 
oui mais moi c 1 puis 2 puis 3 que je voudrais voir affiché en boucle
 
 

Code :
  1. <SCRIPT type="text/javascript">
  2. function montre(object)
  3.   {
  4.   if (document.layers && document.layers[object])
  5.     {
  6.     document.layers[object].visibility = 'visible';
  7.     }
  8.   else if (document.all)
  9.     {
  10.     document.all[object].style.visibility = 'visible';
  11.     }
  12.   else if (document.getElementById)
  13.     {
  14.     document.getElementById(object).style.visibility = 'visible';
  15.     }
  16.   }
  17. function cache(object)
  18.   {
  19.   if (document.layers && document.layers[object])
  20.     {
  21.     document.layers[object].visibility = 'hidden';
  22.     }
  23.   else if (document.all)
  24.     {
  25.     document.all[object].style.visibility = 'hidden';
  26.     }
  27.   else if (document.getElementById)
  28.     {
  29.     document.getElementById(object).style.visibility = 'hidden';
  30.     }
  31.   }
  32. i=1;
  33. function changeMessage()
  34. {
  35. if (i==1)
  36. {
  37.   montre('txtNom');
  38.   cache('txtPrenom');
  39.   cache('txtAge');
  40. }
  41. else
  42. {
  43.   if (i==2)
  44.   {
  45.    cache('txtNom');
  46.    montre('txtPrenom');
  47.    cache('txtAge');
  48.   }
  49.   else
  50.   {
  51.    if (i==3)
  52.    {
  53.     cache('txtNom');
  54.     cache('txtPrenom');
  55.     montre('txtAge');
  56.    }
  57.   }
  58. }
  59. }
  60. i=i+1;
  61. if (i==4)
  62. {
  63. i=1;
  64. }
  65. setInterval("changeMessage()",1000);
  66. </SCRIPT>
  67. <div id=VIP>
  68.   <table id="txtNom" style="visibility:hidden;">
  69.   <tr>
  70.   <td>1</td>
  71.   </tr>
  72.   </table>
  73.   <table id="txtPrenom" style="visibility:hidden;">
  74.   <tr>
  75.   <td>2</td>
  76.   </tr>
  77.   </table>
  78.   <table id="txtAge" style="visibility:hidden;">
  79.   <tr>
  80.   <td>3</td>
  81.   </tr>
  82.   </table>
  83. </div>


Message édité par Dorian BAC+4 le 12-02-2006 à 15:39:26
Reply

Marsh Posté le 12-02-2006 à 13:08:54   

Reply

Marsh Posté le 12-02-2006 à 13:38:15    

La flemme de chercher, mais qu'est-ce que le javascript est mal codé.
 
tes if enchainés sont particulièrement horribles.

Reply

Marsh Posté le 12-02-2006 à 14:21:27    

et la balise [code] ??

Reply

Marsh Posté le 12-02-2006 à 18:24:20    

up non?

Reply

Marsh Posté le 12-02-2006 à 18:25:46    

Ton truc est khakha
 
 
ca c'est pas caca

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. var txtBlock = new Array("txtPrenom","txtNom","txtAge" );
  7. var txtIndex=0;
  8. function changeMessage(){
  9.  for(j=0; j<=txtBlock.length-1; j++){
  10.   if (document.getElementById(txtBlock[j])) {
  11.    document.getElementById(txtBlock[j]).style.display = (j==txtIndex) ?  "block" : "none";
  12.   }
  13.  }
  14.  (txtIndex<txtBlock.length-1) ? txtIndex++ : txtIndex=0;
  15. }
  16. window.onload = function() {
  17.  var timer = setInterval("changeMessage()",500);
  18. }
  19. </script>
  20. <style>
  21. #txtPrenom, #txtNom, #txtAge {
  22.  display:none;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="txtPrenom">1</div>
  28. <div id="txtNom">2</div>
  29. <div id="txtAge">3</div>
  30. </body>
  31. </html>


 
Il y a trop d'erreurs dans ton code, ton problème à toi est simple et il se situe au fait que ta condition
if(i==4)....
n'est pas incluse dans la fonction changemessage, du coup c'est normal que ce ne marche pas et que ca t'affiche 2 ;)
 
et puis tu as utilisé plein de vieux code dépassé,
tes fonctions cache et montre devaient se simplifier à : document.getElementById("iddelobjet" ).style.display.
 
ensuite il y a 2 choses à savoir :  
la propriété visibility:hidden cache l'objet mais laisse l'espace qu'il prend dans la page
la propriété display:none cache l'objet et l'enlève entièrement de la page
 
Et ton vieux paté de If imbriqués tu aurais largement pu l'éviter quand même.


Message édité par gatsu35 le 12-02-2006 à 18:55:24
Reply

Marsh Posté le 12-02-2006 à 20:48:48    

lol ok merci pour ton edit :) c cool de m'avoir expliké pour le if i ==4
j'ai testé ton script ça marche nikel
 
merci bcq gars

Reply

Marsh Posté le 12-02-2006 à 21:28:04    

Je tiens juste à te mettre en garde et ça je le vois souvent :  
Tu fais des études pour être ingénieur (cf poste cat emploi), actuellement tu es BAC+4 (enfin niveau BAC+4) (cf pseudo)
 
quand je vois un code comme tu viens de me pondre, je me dis que tu ne sais pas programmer, et ça tu n'es pas le seul, dans mon ancienne formation sur 28 personnes, il y en avait 14 qui codaient comme les pieds et qui auraient pondu un code aussi crade que le tiens pour faire le peu que je viens de faire....
 
PS: Moi je viens de finir mes études et j'ai un BAC+4


Message édité par gatsu35 le 12-02-2006 à 21:28:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed