Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ticker

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Ticker

    hallo zusammen,
    ich habe einen ticker mit dem u.g. code.
    es funzt auch. jedoch muss ich diesen script von meine php seite aus so aufrufen, dass es sich einmal pro minute automatisch updatet, damit nicht der user der seite immer wieder zum aktualisieren gezwungen ist,...
    daher dachte ich mir also, dass ich das gesamte js code in einem externen js-datei packe, und es immer wieder via php (pro minute) von meine php seite aus aufrufe.

    nur leider bekomme ich das nicht gebacken!?!?!
    könnt ihr mir bitte dabei helfen?

    danke vielmals
    rs

    Code:
    <?php
    $content = "<center>
    <script language=\"JavaScript1.2\">
    var scrollerwidth=120
    var scrollerheight=80
    var scrollerbgcolor='transparent'
    var scrollerbackground='scrollerback.gif'
    var messages=new Array()
    messages[0]=\"nachricht1<img src=bild1.png>\"
    messages[1]=\"nachricht2<img src=bild2.png>\"
    ....
    
    if (messages.length>1)
    i=2
    else
    i=0
    
    function move1(whichlayer){
    tlayer=eval(whichlayer)
    if (tlayer.top>0&&tlayer.top<=5){
    tlayer.top=0
    setTimeout(\"move1(tlayer)\",3000)
    setTimeout(\"move2(document.main.document.second)\",3000)
    return
    }
    if (tlayer.top>=tlayer.document.height*-1){
    tlayer.top-=5
    setTimeout(\"move1(tlayer)\",100)
    }
    else{
    tlayer.top=scrollerheight
    tlayer.document.write(messages[i])
    tlayer.document.close()
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function move2(whichlayer){
    tlayer2=eval(whichlayer)
    if (tlayer2.top>0&&tlayer2.top<=5){
    tlayer2.top=0
    setTimeout(\"move2(tlayer2)\",3000)
    setTimeout(\"move1(document.main.document.first)\",3000)
    return
    }
    if (tlayer2.top>=tlayer2.document.height*-1){
    tlayer2.top-=5
    setTimeout(\"move2(tlayer2)\",100)
    }
    else{
    tlayer2.top=scrollerheight
    tlayer2.document.write(messages[i])
    tlayer2.document.close()
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function move3(whichdiv){
    tdiv=eval(whichdiv)
    if (tdiv.style.pixelTop>0&&tdiv.style.pixelTop<=5){
    tdiv.style.pixelTop=0
    setTimeout(\"move3(tdiv)\",3000)
    setTimeout(\"move4(second2)\",3000)
    return
    }
    if (tdiv.style.pixelTop>=tdiv.offsetHeight*-1){
    tdiv.style.pixelTop-=5
    setTimeout(\"move3(tdiv)\",100)
    }
    else{
    tdiv.style.pixelTop=scrollerheight
    tdiv.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function move4(whichdiv){
    tdiv2=eval(whichdiv)
    if (tdiv2.style.pixelTop>0&&tdiv2.style.pixelTop<=5){
    tdiv2.style.pixelTop=0
    setTimeout(\"move4(tdiv2)\",3000)
    setTimeout(\"move3(first2)\",3000)
    return
    }
    if (tdiv2.style.pixelTop>=tdiv2.offsetHeight*-1){
    tdiv2.style.pixelTop-=5
    setTimeout(\"move4(second2)\",100)
    }
    else{
    tdiv2.style.pixelTop=scrollerheight
    tdiv2.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function startscroll(){
    if (document.all){
    move3(first2)
    second2.style.top=scrollerheight
    second2.style.visibility='visible'
    }
    else if (document.layers){
    document.main.visibility='show'
    move1(document.main.document.first)
    document.main.document.second.top=scrollerheight+5
    document.main.document.second.visibility='show'
    }
    }
    
    window.onload=startscroll
    
    </script>
    
    
    
    
    <ilayer id=\"main\" width=&{scrollerwidth}; height=&{scrollerheight}; bgColor=&{scrollerbgcolor}; background=&{scrollerbackground}; visibility=hide>
    <layer id=\"first\" left=0 top=1 width=&{scrollerwidth};>
    <script language=\"JavaScript1.2\">
    if (document.layers)
    document.write(messages[0])
    </script>
    </layer>
    <layer id=\"second\" left=0 top=0 width=&{scrollerwidth}; visibility=hide>
    <script language=\"JavaScript1.2\">
    if (document.layers)
    document.write(messages[1])
    </script>
    </layer>
    </ilayer>
    
    <script language=\"JavaScript1.2\">
    if (document.all){
    document.writeln('<span id=\"main2\" style=\"position:relative;width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hiden;background-color:'+scrollerbgcolor+' ;background-image:url('+scrollerbackground+')\">')
    document.writeln('<div style=\"position:absolute;width:'+scrollerwidth+';height:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0;top:0\">')
    document.writeln('<div id=\"first2\" style=\"position:absolute;width:'+scrollerwidth+';left:0;top:1;\">')
    document.write(messages[0])
    document.writeln('</div>')
    document.writeln('<div id=\"second2\" style=\"position:absolute;width:'+scrollerwidth+';left:0;top:0;visibility:hidden\">')
    document.write(messages[1])
    document.writeln('</div>')
    document.writeln('</div>')
    document.writeln('</span>')
    }
    </script>
    </center>";
    ?>

  • #2
    meta refresh? javascript:location.reload()


    ??

    oder vielleicht cronjobs? ka was du genau willst hab deinen code nicht gelesen

    Kommentar


    • #3
      hi,
      danke
      werde es mal versuchen,...
      kannst du mir vielleicht sagen, wie ich eine externe js-datei in php aufrufen kann?
      muss ich die ticker/ fenstergrößen auch in der php seite def. oder können diese direkt in meine js-datei bleiben?
      danke und gruss
      rs

      Kommentar


      • #4
        Re: Ticker

        Zitat von Me@Home
        daher dachte ich mir also, dass ich das gesamte js code in einem externen js-datei packe, und es immer wieder via php (pro minute) von meine php seite aus aufrufe.
        PHP ist serverseitig, du kannst deshalb nicht mal einfach so nach einer Minute von dir aus etwas nachladen.
        Mit PHP hat dein Problem nichts zu tun (deshalb verschoben).

        Eine komplette JS-Datei nachladen würde ich auch nicht machen (ist so direkt auch nicht möglich), was spricht denn dagegen, nach eben einer bestimmten Zeit die Funktion neu zu initialisieren?

        http://de.selfhtml.org/javascript/ob...tm#set_timeout

        Kommentar


        • #5
          hi.
          habe es getestet.
          ist leider nicht das was ich suche.
          wie ist es denn, wenn ich nur die var messages in ein anderes file extern abspeichere und immer wieder abfrage?!?!

          hintergrund:
          mambo portal mit dem modul ticker
          ticker wird auf der front end seite am anfang einmal geladen
          mein ticker soll jedoch alle 5 min diesen inhalt aktualisieren und wiedergeben

          ich kann doch auch den var messages evtl. ja auch via verschiedene txt dateien in php up to date erfragen oder?
          zumindest habe ich so etwas ja auch irgendwo online gesehen,...

          bitte um vorschläge, rat oder auch unterstützung

          danke und lg
          rs

          Kommentar


          • #6
            Wenn ich richtig verstanden habe... ich verspüre den Drang wiedermal mit dem Begriff "AJAX" um mich zu werfen

            Informier dich mal über die Sachen, die man mit diesem Begriff bezeichnet, vielleicht ist es ja das, was du suchst.

            Kommentar


            • #7
              Wer bleibt 5 Minuten auf einer Website und beachtet dann noch einen Ticker?
              Ich halte es für unnötig. Wenn doch solltest du dich wie b.punkt vorgeschlagen hat mal mit AJAX beschäftigen.

              Einfach mal in Google oder Wiki danach suchen

              http://en.wikipedia.org/wiki/AJAX

              Kommentar

              Lädt...
              X