tom76nrw: a href = ... als Variable; Aufruf über JAVA-Script

Werte SELFHTML-Moderatoren und -user,

ich betreue mit meinen begrenzten Programmierkenntnissen eine Internetseite eines Tischtennisvereins. In jeder Saison sind Unmengen von Spielerdaten und Links auf Ergebnisseiten zu ändern. Bisher ist dies alles manuel in den HTML-Seiten erfolgt.

Ab jetzt möchte ich alle Daten zentral in eine js-Datei ablegen und per JAVA-Script an entsprechender Stelle die Werte eintragen lassen.

Bsp. Spielername:

In der Datei: aufstellungen.js
var herren_9_brett_4 = "Max, Müller";

In der HTML-Datei:
<script type="text/javascript" src="../aufstellungen.js"></script>

und

<script type="text/javascript"> document.write(herren_9_brett_4);</script>

funktioniert wunderbar.

----------------------------

Nun das Problem. Ich möchte auch einen Link als Variable einsetzen:

In der Datei: aufstellungen.js
var herren_4_link = "http://www.seite.html";

In der HTML-Datei:
<script type="text/javascript" src="../aufstellungen.js"></script>

und

<script type="text/javascript"> document.write(<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>);</script>;

Statt einem Link wird nur statischer Text erzeugt.
Was mach ich falsch?

Vielen Dank im Voraus.

MfG
Tom

  1. <script type="text/javascript"> document.write(<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>);</script>;

    document.write() erwartet einen String, also gib ihm einen:

    <script type="text/javascript"> document.write('<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>');</script>;

    Übrigens, Deine Anwendung schreit förmlich nach einer Datenbank. Du machst Dir das Leben leichter, wenn Du da was machst. Es muss ja nicht gleich MySQL sein. SQLite3 ist vielleicht was für dich.

    Cheers,
    Baba

    1. <script type="text/javascript"> document.write(<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>);</script>;

      document.write() erwartet einen String, also gib ihm einen:

      <script type="text/javascript"> document.write('<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>');</script>;

      Übrigens, Deine Anwendung schreit förmlich nach einer Datenbank. Du machst Dir das Leben leichter, wenn Du da was machst. Es muss ja nicht gleich MySQL sein. SQLite3 ist vielleicht was für dich.

      Cheers,
      Baba

      Vielen Dank Baba!
      zusammen mit Tipp von Gunnar konnte ich es korrigieren.

      Die komplette Zeile lautet:
      <script type="text/javascript"> document.write('<a href="'+herren_4_link+'" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>')</script>

      Zu dem Tipp mit PHP bzw. MYSQL-Datenbank.
      Wie oben geschrieben bin ich ein Laie und zudem berufstätig und zweifacher Papa. Diese Sachen auf die schnelle lernen wird wohl schwierig.

      Vielen Dank für die Hilfe!

      Gruß
      Tom

  2. @@tom76nrw:

    nuqneH

    In jeder Saison sind Unmengen von Spielerdaten und Links auf Ergebnisseiten zu ändern. […]
    Ab jetzt möchte ich alle Daten zentral in eine js-Datei ablegen und per JAVA-Script an entsprechender Stelle die Werte eintragen lassen.

    JavaScript, ein Wort.

    <script type="text/javascript"> document.write(<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>);</script>;

    Statt einem Link wird nur statischer Text erzeugt.
    Was mach ich falsch?

    Hm, magst du’s top down oder bottom up? Die Top Six:

    6. Syntaxfehler: Das Argument von document.write() sollte ein String sein, also in Anführungszeichen:
    document.write('<a href="herren_4_link" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>');

    5. Du willst den String zusammensetzen aus Stringkonstanten und einer Variablen:
    document.write('<a href="' + herren_4_link + '" target="_blank" style="font-size:9pt;">Spielplan / Tabelle / Bilanzen</a>');

    Die nächsten zwei Fehler haben nichts mit JavaScript zu tun:

    4. Du verwendest Inline-Styles. Sämtliche Styleangaben sollten im Stylesheet stehen, nicht in @style-Attributen oder Scripten.

    3. Du verwendest @target und müllst den Bildschirm/Browser des Nutzers mit neuen Fenstern/Tabs zu.

    Die nächsten Fehler haben wieder mit JavaScript zu tun:

    2. Du verwendest document.write(). Das ist das Problem.

    1. Du verwendest JavaScript. Das scheint mir die falsche Technik zu sein.

    Zum einen: Sollen Besucher deiner Seiten ohne JavaScript nichts zu sehen bekommen? Und denk nicht, alle Besucher hätten JavaScript. Prost!

    Zum anderen „sind Unmengen von Spielerdaten und Links auf Ergebnisseiten zu ändern.“ Du willst also in einem JavaScript Unmengen von Daten vom Server zum Nutzer schicken, obwohl der sich vielleicht nur für wenige davon interessiert? Hört sich nicht vernünftig an.

    Lass die Daten auf dem Server! Generiere die HTML-Seiten mit einer serverseitigen Technik (bspw. PHP). Der Einsatz eines Datenbanksystems (bspw. mySQL) für die Spielerdaten könnte überlegenswert sein.

    Qapla'

    PS: Dass es auch serverseitiges JavaScript gibt, sei der Vollständigkeit halber erwähnt.

    --
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)