[Javascript] Datei auslesen und umsetzen

Ticha

Ticha

Linux Missionar
Moin Leute,

für ein Intranet soll ich eine Mitarbeiterliste erstellen. Diese sollte dann in html ausgegeben werden. Klingt ja recht einfach. In html hab ich das ganz auch schon mal gemacht. Das Problem ist nur, das das für Laien absolut unwartbar ist. Von daher hab ich mir gedacht, dass ich das in eine text datei auslagere.

Diese würde ich gerne in xml halten um leichter danach parsen zu können.

Ich hätte mir das so vorgestellt:

<mitarbeiter>
<name></name>
<alter></alter>
<abteilung></abeilung>
<bild_adresse></bild_adresse>
</mitarbeiter>

normalerwesie würde ich sowas mit php und mysql fix umsetzen. Aber da das intrantet nur auf html basis ist und kein webserver existiert, ist das etwas bescheiden.
Ich habe mir überlegt das mit Javasript umzuseten. Allerdings hab ich keine Ahnung, wie ich da anfangen soll, weil ich mich damit überhaupt nicht auskenne.

Kann mir einer von euch, vielleicht ein wenig Starthilfe geben?:hilfe2:
 
Wie soll das zentral ohne Webserver funktioneren, über eine Verzeichnisfreigabe? Das Stichwort ist Dom (Document Object Model).

Wenn ihr halbwegs moderne Browser einsetzt, kannst du für das XML auch einen XSLT-Stylesheet (ja, hatten wir hier erst) schreiben. Dann ersparst du dir das JavaScript.

cu
 
ich hab jetzt gelesne, dass das mit dem xml Dateien immer noch zu kompliziert ist, für dieejniogen die das Pflegen. Deswegen verushc ich jetzt von Hand zu paresne :(


NACHTRAG:

Ich mach es mir jetzt ganz einfach.

ich sage die Liste in die sie eintragen können sieht so aus:

Bild_Quelle;;Name;;Bday;;Abteilung;;\n

Aus fertisch :D

dann geh ich einfach über die SPlit version und parse nach ";;" und "\n" und schon hab ich die Daten.

Jetzt muss ich nur noch wissen, wie ich die txt Datei in einen String in JS bekomme
 
Zuletzt bearbeitet:
Na ob selbsterklärende spitze Klammern schwieriger zu warten sind als ein Semikolon möchte ich mal bezweifeln, aber geht natürlich auch. Dann geht es natürlich auch ohne Dom.
 
aber du weisst nicht zufällig, wie ich eine textdaei in einen string bei JS bekomme?
 
Wo liegt diese Datei denn?

Client oder Server?

Auf dem Server könnte man Sie doch notfalls mit AJAX laden? Oder?
 
@marce: den artikel ahb ich auch schon gelesen. bringt mir ja nichts, weil ja nichts, weil ich keien Textdatei einfügen kann, sondern nur einen sring erstellen kann.

@Plinzen
Die Datei liegt lokal. Also jeder PC kann auf die Datei über einen Direktlink darauf zugreifen. halt ein Intranet :D
 
Schau mal bei mylittlehomepage.net. Da gab es immer eine gute Ajax-Einführung. Läuft alles über den Http-Request. Json ist übrigens auch noch eine einfache Option.
 
naja... da gibts nix bruachbares für mich ...

Das mit dem Jscript funktioniert vorne und hinten nicht sauber und vor allem nicht so, wie ich das möchte.

Ich denk ich schreib übers WE ein C oder Java Programm zuhause, welches die TextDatei einliest und dann jeweils wieder eine
HTML Seite erstellt. Müssen sie wenn neue Daten eingegeben werden, zwar immer wieder das Programm laufen lassen, aber das is ja
kein Problem.

Danke nochmal, dass ihr mir geholfen habt :)

falls jemandem noch eine Idee einfällt, nur bescheid geben :D
 
Zuletzt bearbeitet:
Weil ich ein Menschenfreund bin. Hier eine XSLT-Lösung. CI müsstest du noch reinfummeln.

Edit: Achso, Erklärung ;) Einfach im Browser die XML-Datei öffnen. Der XSLT-Stylesheet wird dann auf die XML-Datei angewandt.
 

Anhänge

  • mitarbeiterliste.zip
    24,5 KB · Aufrufe: 4
Zuletzt bearbeitet:
Hier ein Beispiel wie es mit AJAX gehen könnte:

Datei test.txt:
Code:
TESt;TEST;123;XYZ;

Datei test.html
Code:
<html>
    <head>
        <title>Meine ersten Ajax Erfahrungen</title>
        <script type="text/javascript">
         <!--    
             function doIt(){
             
                 //erstellen des requests
                 var req = null;

                try{
                    req = new XMLHttpRequest();
                }
                catch (ms){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (nonms){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Error creating request object!");
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                  req.open("GET", 'test.txt', true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = function(){            
                    switch(req.readyState) {
                            case 4:
                      
                                alert(req.responseText);
                                document.getElementById('eins').innerHTML = '<strong>'+
                                                                        req.responseText
                                                                        +'</strong>';
                            break;
                    
                            default:
                                return false;
                            break;     
                        }
                    };
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);
            }
         //-->
        </script>
    </head>
    <body>
        <div id="eins" style="width: 80%; height: 80%; border: dashed 1px;">
            <input type="button" onclick="doIt();" value="Mach was!"/>
        </div>
    </body>
</html>

von dieser Seite übernommen: http://www.admin-wissen.de/eigene-tutorials/webentwicklung/ajax-tutorial/einfuehrung-in-ajax/

Wichtig ist: HTML-Datei und Textdatei müssen im gleichen Verzeichnis liegen.

Gruß Plinzen
 
Zurück
Oben