Matthias: Newstext mit Variable

Habe ein Skript für einen Lauftext in einem Formularfeld.
Wollte keinen statischen Text einbauen, sondern einen Text der aus einer PHP File includet wird. Bei dem Funktionsaufruf soll dann dieser String als Variable an die JS Funktion übergeben werden.
Da ist irgendwo der Hund drin.

var banTime1;

function banner(text){

var msg=text;

msg=msg.substring(1,msg.length)+msg.substring(0,1);

document.banner.text.value=msg;

banTime1=setTimeout("banner()",100);

}

msg ist undefiniert. Bin in JS nicht gerade gut. Kann mir jemand helfen.
Grüsse
Matthias

  1. Hi,

    var msg=text;

    msg ist also text

    function banner(text){

    text wurde banner() übergeben.

    banTime1=setTimeout("banner()",100);

    Fragt sich nur wo? Hier jedenfalls nicht.

    Also ist text undefiniert ...

    msg ist undefiniert.

    ... und ergo msg ebenfalls.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Und nu weiss ich den Fehler, kann mir aber eine Antwort nicht zusammenreimen, vielleicht gibst du mir noch einen kleinen Tipp zur Problemlösung !

      Grüsse
      Matthias

      1. Tag Mat.

        Und nu weiss ich den Fehler, kann mir aber eine Antwort nicht zusammenreimen, vielleicht gibst du mir noch einen kleinen Tipp zur Problemlösung !

        Füge an der entsprechenden Stelle eine echo-Anweisung ein:

        <?php
          $text = "Ich bin ein nerviger Lauftext";
        ?>
        function banner() {
          var msg = <?php echo $text ?>;
          ...
        }

        That's it.

        Siechfred

        1. Füge an der entsprechenden Stelle eine echo-Anweisung ein:

          <?php
            $text = "Ich bin ein nerviger Lauftext";
          ?>
          function banner() {
            var msg = <?php echo $text ?>;
            ...
          }

          Nee sorry so leicht gehts nicht.

          1. hi,

            $text = "Ich bin ein nerviger Lauftext";
            ?>
            function banner() {
              var msg = <?php echo $text ?>;

            Nee sorry so leicht gehts nicht.

            Schön, dass du das auch merkst :-)

            Dann ist es jetzt wohl an der Zeit, dass du dich mal ein bisschen mit den Grundlagen von Javascript beschäftigst, und den Fehler analysierst.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Dann ist es jetzt wohl an der Zeit, dass du dich mal ein bisschen mit den Grundlagen von Javascript beschäftigst, und den Fehler analysierst.

              Guter Vorschlag ! Die wahrheit ist, ich hasse JS. PHP ist meine absolute lieblings Sache leider kann ich soetwas nur mit JS realisieren, drumm drück ich mich immer vor JS.

              1. hi,

                Guter Vorschlag ! Die wahrheit ist, ich hasse JS. PHP ist meine absolute lieblings Sache leider kann ich soetwas nur mit JS realisieren, drumm drück ich mich immer vor JS.

                Dann lautet die Alternative wohl: Lass' es bleiben.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Dann lautet die Alternative wohl: Lass' es bleiben.

                  Falsch ! Finde ne neue Lösung.
                  So per externer file, wo man die Variable msg definiert, kann man die Variable ohne Probleme bearbeiten und einbinden. So wirds gemacht !

                  :-) !

                  Grüsse
                  Matt

          2. Tag Mat.

            var msg = <?php echo $text ?>;
            Nee sorry so leicht gehts nicht.

            Jepp, da fehlten noch die Anführungszeichen, also so:

            var msg = "<?php echo $text ?>";

            ergibt beim Client:

            var msg = "Ich bin ein nerviger Lauftext";

            Damit wäre das Problem der Variablenzuweisung gelöst, nun musst du nur noch dein Banner zum Laufen bringen. Dabei wäre es sinnvoll, den Text zu lassen, wie er ist, und nur die Position zu ändern:

            text = "Ich bin ein nerviger Lauftext";  
            zeilenbreite = 5;  
              
            function banner(pos) {  
              pElem = document.getElementById('lauftext');  
              if(pos > text.length - 1)  
                pos = 0;  
              msg = text.substr(pos,zeilenbreite);  
              if(!pElem.hasChildNodes()) {  
                tNode = document.createTextNode(msg);  
                pElem.appendChild(tNode);  
              }  
              else {  
                pElem.firstChild.nodeValue = msg;  
              }  
              pos++;  
              window.setTimeout("banner("+pos+")", 200);  
            }
            

            Jetzt noch ein leeres HTML-Element mit der ID "lauftext", schon klappt's.

            Siechfred

      2. Hi,

        Und nu weiss ich den Fehler, kann mir aber eine Antwort nicht zusammenreimen, vielleicht gibst du mir noch einen kleinen Tipp zur Problemlösung !

        ? Übergib banner() den Text mittels Parameter, was Du nicht tust.

        banTime1=setTimeout("banner()",100);

        banTime1=setTimeout("banner('"+msg+"')",100);

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!