javascrpit ticker mit mysql?



  • Hallo,

    der Fehler an der Stelle wird wohl der Doppelpunkt hiner href sein. Da sollte ein = hin. Der Rest ist in Ordnung, allerdings sehr statisch. Dann würde sich der Newsticker nur beim Neuladen der Seite aktualisieren.

    Edit: Quatsch, gar nich in Ordnung. Bei dem gezeigten Code würde jeder "Text" in einem seperaten marquee auftauchen. Also erst sammeln, dann anzeigen.

    while ($row = mysql_fetch_array($end))
    {
       $marquee .= " >> " . $row['marquee'];
    }
    
    print "<p><marquee...." . $marquee . "</marquee></p>";
    

    VlG



  • <marquee> ist nicht bestandteil des HTML-Standards und sollte dementsprechend auch nicht genutzt werden

    Wenn du auf das nachladen über Javascript verzichten kannst, also der Inhalt des Tickers bis zum nächsten Reload gleich bleiben kann, dann kannst du auf den AJAX-Part verzichten, was das ganze vereinfacht. Dann brauchst du JS nur, um das ganze optisch ein wenig aufzuwerten (z.B. Laufschrift).

    Da bietet dir aber eine Google-Suche nach "Javascript Ticker" wohl genug Ergebnisse



  • Hallo,

    so schnell passieren Fehler.

    ich habe bei Google gegooglet allerdings nichts gefunden das meinen wünschen entspricht und oft nichtmal anähernd



  • Hallo,

    an RandomAccess85

    Vielen dank
    der code hilft schon ungemein weiter!

    genau so wollte ich es haben danke!



  • Hallo,

    dann musst du ja nur noch weg vom marquee. zwutz sagte ja bereits dass es nicht mehr zum HTML-Standard gehört und deswegen durch jede w3c-Prüfung fliegt (gehörte es jemals dazu?).

    Kleines Beispiel für eine Javascript-Lösung:

    <?php
    //Abfrage ...
    
    while ($row = mysql_fetch_array($end)) 
    { 
       $Tickertext.= " >> " . $row['marquee']; 
    } 
    
    ?>
    
    <script language="javascript"> 
    
    var news=<?=$Tickertext?> 
    var text; 
    var timeout=150 ;
    newsticker();
    
    function newsticker() 
    { 
      text=news;
      document.getElementById("ticker").innerText = text ;
      news=news.substring (1, news.length) + news.substring(0,1) ;
      setTimeout("newsticker()", timeout) ;
    } 
    
    </script>
    <div id="ticker"></div>
    

    VlG



  • RandomAccess85 schrieb:

    (gehörte es jemals dazu?)

    Meines Wissens nicht:
    http://en.wikipedia.org/wiki/Marquee_element

    Schon lustig, dass einzelne HTML-Elemente in der englischsprachigen Wikipedia bereits eigene Artikel für sich haben 🤡



  • RandomAccess85 schrieb:

    <?php
    //Abfrage ...
    
    while ($row = mysql_fetch_array($end)) 
    { 
       $Tickertext.= " >> " . $row['marquee']; 
    } 
    
    ?>
    
    <script language="javascript"> 
    
    var news=<?=$Tickertext?> 
    var text; 
    var timeout=150 ;
    newsticker();
    
    function newsticker() 
    { 
      text=news;
      document.getElementById("ticker").innerText = text ;
      news=news.substring (1, news.length) + news.substring(0,1) ;
      setTimeout("newsticker()", timeout) ;
    } 
    
    </script>
    <div id="ticker"></div>
    

    VlG

    Wie kann ich da denn hintergrund farbe, schnelligkeit und grösse ändern?



  • Hallo,

    mit CSS. Gib dem DIV-Container eine Klasse und spezifiziere dann das Layout in entweder in einer CSS-Datei oder innerhalb der Style-Tags:

    <style>
    .meinDiv {
       backgroundColor = #006699;
       font-size:16px;
       /* usw. */
    }
    </style>
    
    <!-- PHP und Javascript-Zeug von oben übernommen -->
    
    <div id="ticker" class="meinDiv"></div>
    

    VlG



  • Hallo,

    kann mir noch jemand hierbei helfen mittlerweile blick ich hier gar nicht mehr durch!

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>HEADER</title> 
    </head>
    <style>
    .meinDiv {
       backgroundColor = #FFFFFF;
       font-size:16px;
       /* usw. */
    }
    </style>
    <body bgcolor="#000000">
    <center>
    <font color="#FFFFFF">
    <h1>header</h1>
    <?php
    require ('config.php');
    error_reporting(E_ALL); 
    $Tickertext = "";
    $abfrage = "SELECT ID,Link,tickertext FROM ticker ORDER BY ID DESC ";
    $end = mysql_query($abfrage);
    
    while ($row = mysql_fetch_array($end))
    {
       $Tickertext.= " >> " . $row['tickertext'];
    }
    
    ?>
    
    <script language="javascript">
    
    var news=<?=$Tickertext?>
    var text;
    var timeout=150 ;
    newsticker();
    
    function newsticker()
    {
      text=news;
      document.getElementById("ticker").innerText = text ;
      news=news.substring (1, news.length) + news.substring(0,1) ;
      setTimeout("newsticker()", timeout) ;
    }
    
    </script>
    <div id="ticker" class="meinDiv"></div>
    </center>
    </body>
    </html>
    

    er gibt mir kein TICKER aus sondern gar nichts

    EDIT:

    So klappt es ebenfalls nicht:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>HEADER</title>
    <?php
    require ('config.php');
    error_reporting(E_ALL); 
    $Tickertext = "";
    $abfrage = "SELECT ID,Link,tickertext FROM ticker ORDER BY ID DESC ";
    $end = mysql_query($abfrage);
    
    while ($row = mysql_fetch_array($end))
    {
       $Tickertext.= " >> " . $row['tickertext'];
    }
    
    ?> 
    <script language="javascript">
    
    var news=<?=$Tickertext?>
    var text;
    var timeout=150 ;
    newsticker();
    
    function newsticker()
    {
      text=news;
      document.getElementById("ticker").innerText = text ;
      news=news.substring (1, news.length) + news.substring(0,1) ;
      setTimeout("newsticker()", timeout) ;
    }
    
    </script>
    </head>
    <body bgcolor="#FFFFFF">
    <center>
    <font color="#000000">
    <h1>header</h1>
    <div id="ticker"> <?php echo 'FEHLER:'. mysql_error(); ?></div>
    </center>
    </body>
    </html>
    


  • So nach langem suchen und probieren gibt es so keine Fehler mehr die aufgeführt werden allerdings wird der ticker nicht angezeigt hier der vollständige code:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>HEADER</title>
    </head>
    <style TYPE="text/css">
    .meinDiv {
       background-Color:#FFFFFF;
       font-size:16px;
       color:#000000;
       /* usw. */
    }
    </style>
    <body bgcolor="#000000">
    <body> 
    <center>
    <font color="#FFFFFF">
    <h1>header</h1>
    </font>
    <body onload="newsticker()">
    <div id="ticker" class="meinDiv"> <?php echo "FEHLER:".mysql_error(); ?></div>
    <?php
    require ('config.php');
    error_reporting(E_ALL); 
    $Tickertext = "";
    $abfrage = "SELECT ID,Link,tickertext FROM ticker ORDER BY ID DESC ";
    $end = mysql_query($abfrage);
    
    while ($row = mysql_fetch_array($end))
    {
       $Tickertext.= " | " . $row['tickertext'];
    }
    
    ?>
    <script language="javascript">
    
    var news="<?=$Tickertext?>";
    var text;
    var timeout=150 ;
    newsticker();
    
    function newsticker()
    {
      text=news;
      document.getElementById("ticker").innerText = text ;
      news=news.substring (1, news.length) + news.substring(0,1) ;
      setTimeout("newsticker()", timeout) ;
    }
    
    </script>
    </center>
    </body>
    </html>
    


  • Hallo,

    der FX kennt die Eigentschaft innerText nicht. Dafür kannst du stattdessen textContent verwenden.

    if(document.all){
        document.getElementById("ticker").innerText = text; 
    } else{
        document.getElementById("ticker").textContent = text; 
    }
    
    <body bgcolor="#000000">
    <body> <!-- ?? einmal body reicht -->
    

    Desweiteren würd ich für meinDiv noch eine größe vergeben.

    VlG


Anmelden zum Antworten