Sam: Text aus Array mit Variablen?

Moin,

ich habe in einem Array Text stehen. Zwischen diesen Text möchte ich noch variable Werte einfügen deswegene habe ich die mit +vaname+ dazwischen gesetzt. Der Text wird dann an eine Funktion übergeben, die diese Variablen berechnet und so sollen sie dann im Text eingefügt werden. Das klappt aber nicht, ich bekomme immer 'blabla+varname1+blala+varname2+blabla' zurückgeliefert, also die Variablen werden irgendwie nicht mehr als solche erkannt. Gibt es eine Möglichkeit die da rein zu bekommen? Anders als den Text der Funktion übergeben kann ich es nicht machen, also das kann man knicken.

Gruß, Sam

  1. Sup!

    Da musst Du schon den Code posten...

    Gruesse,

    Bio

    --
    Und er laechelt, denn er weiss: Das Boese siegt immer!
    1. Da gibts nix groß zu posten.

      function alertText(thetext);

      varname = 6;

      window.alert(thetext);
      }

      textarray = new Array("Die Zahl ist "+varname+"!");

      <a href="javascript:alertText(textarray[0]);">Test</a>

      Ich habe das Problem jetzt eingrenzen können, jetzt bekomme ich nämlich die Fehlermeldung, dass textarray nicht definiert wäre. :(

      1. Hallo Sam,

        hier definierst Du eine Funktion ohne body:

        function alertText(thetext);

        Hier weist Du der globalen Variablen varname den Wert 6 zu.

        varname = 6;

        Dann versuchst Du, den an die Funktion übergebenen String thetext auszugeben. Das verursacht wahrscheinlich einen Fehler, so dass der Rest nicht mehr ausgeführt wird. (Falls nicht, tritt in der nächsten Zeile ein Fehler auf).

        window.alert(thetext);

        Diese Klammer steht sinnlos in der Gegend herum:

        }

        Hier erzeugst Du ein globales Array mit einem Element, nämlich dem aus "Die Zahl ist ", dem Wert der Variablen varname und "!" zusammengesetzten String.

        textarray = new Array("Die Zahl ist "+varname+"!");

        Hier rufst Du die Funktion alertText mit dem ersten Element des Arrays als Parameter auf:

        <a href="javascript:alertText(textarray[0]);">Test</a>

        Was willst Du eigentlich erreichen?

        Grüße
        Andreas

        --
        "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
        (Rich Cook)
        1. Ich vermute, dass er soetwas haben möchte...
          Die Zahl ist 6!

          kann aber nicht funktionieren...
          da varname zum Zeitpunkt des aufrufes nicht definiert ist

          varname wird erst in der funktion definiert...

          du übergibst also an die Funktion "alertText" diese Zeichenkette

          Die Zahl ist undefined!

          die Variblenzuweisung, in der Funktion, hat kein Einfluss mehr auf die Alertfunktion

          wenn du
          var varname = 6;
          vorher aufrufst, dann wird daraus auch was brauchbares

          Beispiel....
          ----------------
          <script language="JavaScript" type="text/JavaScript">
          var varname = 6;
          var textarray = new Array("Die Zahl ist "+varname+"!");
          function alertText(thetext){
            //varname = 6;
            window.alert(thetext);
          }
          </script>
          <a href="javascript:alertText(textarray[0]);">Test</a>

          1. Hallo Bdboy,

            kann aber nicht funktionieren...
            da varname zum Zeitpunkt des aufrufes nicht definiert ist
            varname wird erst in der funktion definiert...

            falsch, da er keinen Funktionskörper hat in dem irgendwas deklariert werden könnte. Ausserdem verwendet er nirgendwo das Schlüsselwort var, so dass alle Variablen denen etwas zugewiesen wird global sind.

            Grüße
            Andreas

            --
            "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
            (Rich Cook)
            1. Das war nur ein Tippfehler, aber wie bekomme ich denn die Variable in den Text im Array? Wie gesagt kann ich die Reihenfolge nicht ändern, da die Zahl dynamisch in der Funktion generiert werden wird, wenn ich mal dieses Problem lösen kann. Also kann ich sie gar nicht irgendwo vorher definieren.

              1. <script language="JavaScript" type="text/JavaScript">
                function alertText(){
                  var varname = 6;
                  window.alert('Die Zahl ist ' + varname + '!');
                }
                </script>
                <a href="javascript:alertText();">Test</a>

                kannst du es nicht so machen?

                1. Leider nicht. Also besteht gar keine Möglichkeit das so zu realisieren?

                  1. Hallo Sam,

                    Leider nicht. Also besteht gar keine Möglichkeit das so zu realisieren?

                    Wie lange willst Du uns eigentlich noch rumraten lassen, was Du eigentlich willst?

                    Noch ein Versuch:
                    Schreibe in den Text, den Du an die Funktion übergibst einen Platzhalter (z.B. %%%) und ersetze diesen Platzhalter in der Funktion mit replace durch den Wert der Variablen: http://selfhtml.teamone.de/javascript/objekte/string.htm#replace

                    Grüße
                    Andreas

                    --
                    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
                    (Rich Cook)
                    1. Jepp, die Idee ist mir auch gerade gekommen und so werd ichs auch machen.

                      1. <script language="JavaScript" type="text/JavaScript">
                        function alertText(thetext){
                          var varname = 6;
                          window.alert(thetext.replace(/varname/,varname));
                        }
                        var textarray = new Array("Die Zahl ist varname!", "varname ist eine dumme Zahl!");
                        </script>
                        <a href="javascript:alertText(textarray[0]);">Test</a><br>
                        <a href="javascript:alertText(textarray[1]);">Test2</a>

                        ----

                        so geht es super ;)

                        1. Ja, danke für eure Hilfe!