Se connecter avec
S'enregistrer | Connectez-vous

[résolu] HTML PHP - marquee + norme w3c

Dernière réponse : dans Programmation

Bonjour,
voila j'ai récément développer un site web (http://techno-land.venez.fr), mais je n'est appris que plus tard qu'il existait cette norme w3c, et vous vous en doutez, mon site est très très loin de satisfaire cette norme...

je refait donc a l'identique ce site en repartant de rien et en essayant de satisfaire ces normes.
actuellement, j'en suis au petit bout de texte qui défile en haut de ma page.
ce texte est issu d'une base de donnée et fonctionne pour l'instant grâce a ce code :
  1. <marquee direction="left" scrollamount="3" scrolldelay="1">
  2. <?php // Connexion base de données
  3. mysql_connect('*****', '*****', '*****') or die('Impossible de se connecter : ' . mysql_error());
  4. mysql_select_db('technoland40:site_news');
  5. // Récupération des données
  6. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM site_news');
  7. $donnees = mysql_fetch_array($retour);
  8. $reponse = mysql_query('SELECT titre,texte,lien FROM site_news ORDER BY id');
  9. while ($donnees = mysql_fetch_array($reponse)){
  10. echo '<u>' . $donnees['titre'] . ' :</u> ' . $donnees['texte'];
  11. if ($donnees['lien'] != NULL)
  12. echo ' <a href="' . $donnees['lien'] . '" class="liens" target="site"> + d\'infos</a>';
  13. echo ' - ';
  14. }
  15. mysql_close();
  16. ?>
  17. </marquee>


Voila donc ma question est simple :
comment obtenir le même résultat sachant que la norme w3c n'accepte pas le marquee....

J'ai trouver quelques scripts en JavaScript mais le problème c'est qu'ils fonctionnent tous avec un texte écrit dans le code et je n'arrive pas a y inclure le texte de ma base de donnée.

merci d'avance pour vos réponses
fab
Lassé par la pub ? Créez un compte

Voila mon script JavaScript :
  1. <script type="text/javascript">
  2. var id,pause=0,position=0;
  3. function banner() {
  4. var i,k,speed=10;
  5. var msg="le message qui defile ici";
  6. alert("test");
  7. alert(msg);
  8. k=(66/msg.length)+1;
  9. for(i=0;i<=k;i++) msg+=" "+msg;
  10. document.defil.banner.value=msg.substring(position,position+300);
  11. if(position++==msg.length) position=0;
  12. id=setTimeout("banner()",1000/speed); }
  13. </script>

donc ce script fonctionne très bien j'ai bien "le message qui defile ici" qui défile sur ma page, sauf que moi il faut que ce message soit récupérer dans la base de donnée...

on m'a suggérer de récupérer les données avec du php et d'insérer la variable PHP dans mon code javascript, ce qui me donne le code suivant :
  1. <?php
  2. mysql_connect('*******', '******', '*******') or die('Impossible de se connecter : ' . mysql_error());
  3. mysql_select_db('technoland40:site_news');
  4. // Récupération des données
  5. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM site_news');
  6. $donnees = mysql_fetch_array($retour);
  7. $reponse = mysql_query('SELECT titre,texte,lien FROM site_news ORDER BY id');
  8. while ($donnees = mysql_fetch_array($reponse)){
  9. $msg= '<u>' . $donnees['titre'] . ' :</u> ' . $donnees['texte'];
  10. if ($donnees['lien'] != NULL)
  11. {$msg=$msg . ' <a href="' . $donnees['lien'] . '" class="liens" target="site"> + d\'infos</a>';}
  12. $msg=$msg . ' - ';
  13. }
  14. mysql_close();
  15. ?>
  16. <script type="text/javascript">
  17. var id,pause=0,position=0;
  18. function banner() {
  19. var i,k,speed=10;
  20. var msg='<?php echo $msg; ?>';
  21. alert("test");
  22. alert(msg);
  23. k=(66/msg.length)+1;
  24. for(i=0;i<=k;i++) msg+=" "+msg;
  25. document.defil.banner.value=msg.substring(position,position+300);
  26. if(position++==msg.length) position=0;
  27. id=setTimeout("banner()",1000/speed); }
  28. </script>


et la je n'est plus rien qui défile...
alors d'ou vient le problème?

alors j'ai pas compris l'idée de la boucle sur le script va falloir m'expliquer mais une chose est sure c'est que le fait de déplacer le ?> n'a rien changer.

petit bug aussi assez bizare, dans mon code j'ai mis deux 'alert' pour essayer de suivre l'évolution du code, mais ces 'alert' ne se sont jamais afficher comment sa se fait?

bon j'ai trouver d'ou viens le problème : Mon message est tout simplement trop long pour que mon script le supporte.
ce script étant un copié collé d'un site internet je ne le comprend pas parfaitement,
quelqu'un a-t'il une idée pour modifier ce script de façon a ce qu'il fonctionne avec mon message qui peut être bien long...?

merci pour votre aide

oui avec un texte cour ça marce (enfin aprés avoir supprimer les deux lignes, le texte commence a gauche et défile vers la gauche (il disparait quoi et réaparait...)

Si quelqu'un a un meilleur script qui ferait apparaitre mon texte de la droite et disparaitre a gauche et ceci en boucle... sachant que mon texte peut etre long...

merci
Expert Programmation

Et la seule raison pour laquelle tu veux pas utiliser un marquee c'est parce que c'est pas valide W3C ?
Si c'est le cas, tu créé un marquee en javascript, et c'est réglé...
Expert Programmation

  1. <div id="marqueeContainer"></div>
  2.  
  3. <script type="text/javascript">
  4. document.getElementById('marqueeContainer').innerHTML = "<marquee...>texte</marquee>";
  5. </script>
Lassé par la pub ? Créez un compte
Tom's guide dans le monde