Jupp Kleingeist: Inhalt von dataFld an Variable übergeben

Hallo,

kann mir irgend Jemand sagen, wie ich den Inhalt von dataFld
<span id=... dataFld="Beschreibung" ...>

in Javascript einer Variablen zuweisen kann.

Es mag simple sein, doch ich bekomme es nicht hin.

Vielen Dank,
MfG JK

PS. Ich weiß, IE only.

  1. Hi,

    kann mir irgend Jemand sagen, wie ich den Inhalt von dataFld
    <span id=... dataFld="Beschreibung" ...>

    in Javascript einer Variablen zuweisen kann.

    Es mag simple sein, doch ich bekomme es nicht hin.

    IMO hast du die Grundlage für den Zugriff auf den Inhalt des Feldes schon gelegt, indem du dem span eine id zuweist.
    Jetzt solltest du über DOM Zugriff auf den Inhalt des Feldes erhalten. Wie das genau geht, erfährst du im JavaScript- und DHTML-Bereich von SELFHTML.

    PS. Ich weiß, IE only.

    Jaja. Machs, wenn nur irgend möglich, mit PHP. Ich habe gerade mit PHP angefangen zu arbeiten und komme recht gut damit klar. Ob dir PHP zur Verfügung steht, ist davon abhängig, ob das auf deinem Server installiert ist und ob du die Berechtigung hast, PHP-Dateien hochzuladen und auszuführen.

    Gruß
    Arx

    1. IMO hast du die Grundlage für den Zugriff auf den Inhalt des Feldes schon gelegt, indem du dem span eine id zuweist.
      Jetzt solltest du über DOM Zugriff auf den Inhalt des Feldes erhalten. Wie das genau geht, erfährst du im JavaScript- und DHTML-Bereich von SELFHTML.
      Arx

      Vielen Dank für die zügige Antwort.
      Ich habe SELFHTML von vorne bis hinten gelesen und alles mögliche ausprobiert, bis hin zur Fehlermeldung, dass IE auf den Speicher xy nicht zugreifen kann und es besser ist neu zu booten.
      Maximal bekomme ich über id den Feldnamen, jedoch nicht den Feldinhalt heraus.
      Wie gesagt, es mag simple sein, doch ich komme nicht darauf.
      Vorerst will ich auch nicht mit PHP und sonstigem anfangen.

      Gruß JK

      1. Hi nochmal,

        Ich habe SELFHTML von vorne bis hinten gelesen und alles mögliche ausprobiert, bis hin zur Fehlermeldung, dass IE auf den Speicher xy nicht zugreifen kann und es besser ist neu zu booten.

        Uiuiui...

        Maximal bekomme ich über id den Feldnamen, jedoch nicht den Feldinhalt heraus.

        Hast du schon mal flgendes probiert:

        eine_Variable=document.getElementById("die_ID_des_Datenfelds").firstChild.nodeValue;

        ?

        Gruß
        Arx

        1. eine_Variable=document.getElementById("die_ID_des_Datenfelds").firstChild.nodeValue;
          Gruß
          Arx

          Hallo,
          lach jetzt nicht, was ist die ID_des_Datenfelds?

          Bsp.
          Externe Datei: Inhalt.txt
          Bildname  |Beschreibung
          Bild-1.jpg|Ein schönen Bild
          Bild-2.jpg|Noch ein Bild
          Bild-3.jpg|und so weiter ...

          Diese vier Zeilen lesen die Datei Inhalt.txt aus und stellen alle Bilder nebst der Beschreibung dar.

          <Table ...><TR><TD ...>
          <span  datafld="Beschreibung" > </span>
          <IMG datafld="Bildname">
          <script> b_name[i]= document.all.?????.datafld.??? ; </script>
          </Table>

          In <script>... würde ich halt gerne den Namen der Biddatei festhalten.
          Eine ID kann ich weder zuordnen noch finden.

          Gruß JK

          1. eine_Variable=document.getElementById("die_ID_des_Datenfelds").firstChild.nodeValue;
            Gruß
            Arx

            Hallo,
            lach jetzt nicht, was ist die ID_des_Datenfelds?

            Bsp.
            Externe Datei: Inhalt.txt
            Bildname  |Beschreibung
            Bild-1.jpg|Ein schönen Bild
            Bild-2.jpg|Noch ein Bild
            Bild-3.jpg|und so weiter ...

            Diese vier Zeilen lesen die Datei Inhalt.txt aus und stellen alle Bilder nebst der Beschreibung dar.

            <Table ...><TR><TD ...>
            <span  datafld="Beschreibung" > </span>
            <IMG datafld="Bildname">
            <script> b_name[i]= document.all.?????.datafld.??? ; </script>
            </Table>

            Ich schlage jetzt mal folgendes vor, weiß aber nicht ob das auch reibungslos abläuft:

            Deine Inhalt.txt:
            Bildname  |Beschreibung|Script
            Bild-1.jpg|Ein schönen Bild|<script type="text/css">b_name[i]="Bild-1.jpg"; i=i+1</script>
            Bild-2.jpg|Noch ein Bild|<script type="text/css">b_name[i]="Bild-2.jpg"; i=i+1</script>
            Bild-3.jpg|und so weiter ...|<script type="text/css">b_name[i]="Bild-3.jpg"; i=i+1</script>

            Die Ausgabe musst du dann so machen:
            <Table ...><TR><TD ...>
            <span  datafld="Beschreibung" > </span>
            <IMG datafld="Bildname">
            <span datafield="Script" dataformatas="html"></span>
            </TD></TR></Table>

            Du fügst also in deiner Quelldatei noch ein drittes Feld hinzu und schreibst in dieses obige zwei JavaScript-Befehle, wobei du immer nur den Dateinamen anpasst. Selbstverständlich musst du das Array b_name und die Variable i vorher außerhalb der Tabelle initialisieren; i sollte dabei den Wert 0 (Null) zugeordnet bekommen.
            Die Einbindung in die Tabelle funktioniert dann wie gewohnt, nur musst du im Feld für das Script die Angabe dataformatas="html" machen, damit das Script ausgeführt und nicht etwa als Text interpretiert wird.
            Und genau da liegt der Haken: Ich weiß nicht ob der IE das Script ausführt, wenn man es so einbindet. Aber ein Versuch ist es wert.

            Schreib bitte, ob es funktioniert!

            Gruß & Gute Nacht
            Arx

            1. Und genau da liegt der Haken: Ich weiß nicht ob der IE das Script ausführt, wenn man es so einbindet. Aber ein Versuch ist es wert.

              Schreib bitte, ob es funktioniert!

              Gruß & Gute Nacht
              Arx

              Hallo,

              ein wirklich interessanter Lösungsansatz.
              Ich habe es ausprobiert.
              Vorab i=0; und b_name[0]="xxx" vorbelegt.
              hinterher stand i immer noch auf 0 und in b_name[0] weiterhin xxx

              Schade, war ein Versuch.
              Ich fürchte das Problem ist tiefgründiger. Ich habe nach </html> noch ein <script>alert... eingefügt. Interessanter Weise wird die Seite bzw. der angeführte Code (Bilder u. Beschreibung) erst  aufgebaut wenn dieser alert bestätigt wurde.
              Die im Programcode mit eingebaute Zeile: <SCRIPT> k=k+1;</script> mit dem Ergebnis k=1 zeigt das die Table nur einmal durchlaufen wird.

              Gruß JK

              1. Hallo,

                sorry sorry sorry!

                Habe in dem Script, das ich dir geschickt habe einen tödlichen Fehler gemacht!

                Anstatt

                <script type="text/css">

                muss das natürlich

                <script type="text/javascript">

                lauten! Deine gesamte Quelldatei Inhalt.txt sollte also so aussehen:

                Bildname  |Beschreibung|Script
                Bild-1.jpg|Ein schönen Bild|<script type="text/javascript">b_name[i]="Bild-1.jpg"; i=i+1</script>
                Bild-2.jpg|Noch ein Bild|<script type="text/javascript">b_name[i]="Bild-2.jpg"; i=i+1</script>
                Bild-3.jpg|und so weiter ...|<script type="text/javascript">b_name[i]="Bild-3.jpg"; i=i+1</script>

                Korrigiere das mal und sag, ob es funktioniert!

                Vorab i=0; und b_name[0]="xxx" vorbelegt.

                Hast du auch vorher

                b_name=new Array();

                ausgeführt???

                Ich habe nach </html> noch ein <script>alert... eingefügt. Interessanter Weise wird die Seite bzw. der angeführte Code (Bilder u. Beschreibung) erst  aufgebaut wenn dieser alert bestätigt wurde.

                Seltsam. Sehr seltsam. Aber: 1. Niemals <script>-Bereiche außerhalb von <head> oder <body>! 2. Ich kenne das gleiche Verhalten, wenn ein alert im Kopf der Datei notiert ist.

                Die im Programcode mit eingebaute Zeile: <SCRIPT> k=k+1;</script> mit dem Ergebnis k=1 zeigt das die Table nur einmal durchlaufen wird.

                Was ist das für ein K ?

                Gruß
                Arx