Manfred Prefi: JS-Abfrage, ob Feld Inhalt hat (war:Frage zum Wiki-Artikel „Name“)

Hallo, ich habe in HTML in einer Webseite mehrere Tabellen, deren einzelne Zellen eine ID haben. ich möchte,

a) bestimmte Zellen abfragen, ob ihr Inhalt 'leer' bzw 'nicht leer' ist.

b) nach dem Ausfüllen aller Felder den Inhalt bestimmter Felder in eine Datei schreiben.

Wie kann ich das mit javascipt bewerkstelligen? Kann mir jemand helfen? Manfred Prefi

  1. Servus!

    Hallo, ich habe in HTML in einer Webseite mehrere Tabellen, deren einzelne Zellen eine ID haben. ich möchte,

    a) bestimmte Zellen abfragen, ob ihr Inhalt 'leer' bzw 'nicht leer' ist.

    Bestimmte heißt, dass du deren id kennst. Selektiere diese mit querySelector und lies den textContent aus

    b) nach dem Ausfüllen aller Felder den Inhalt bestimmter Felder in eine Datei schreiben.

    Das ist eher das Problem. JavaScript wird im Browser des Benutzers ausgeführt und darf eben nicht auf das File System des Nutzers zugreifen - sonst könnte ich mit JS ja Deine Festplatte auslesen.

    Das geht mit Node.js, ist aber kompliziert.

    Wie kann ich das mit javascipt bewerkstelligen? Kann mir jemand helfen?

    Es wäre gut, wenn du sagen könntest, wofür du das brauchst. Evtl. gibt es eine andere Möglichkeit.

    Herzliche Grüße

    Matthias Scharwies

    --
    Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
  2. problematische Seite

    Hallo Manfred,

    ohne deutlich konkretere Angaben kann Dir keiner helfen.

    Wir kennen deinen Wissensstand zu JavaScript nicht. Kommt Dir hiervon einiges vor oder sind das alles böhmische Dörfer? Eins wird nicht passieren: Dass Dir jemand auf Grund vager Hinweise ein fertiges Script schreibt.

    Wir kennen dein HTML nicht. Ein Script muss auf dem HTML agieren

    Wir wissen nicht, was eine Zelle für Dich ist. Das td-Element? Oder ein input- oder textarea-Element darin?

    Was meinst Du mit "In eine Datei schreiben?" In eine Datei auf dem Client? In eine Datei auf deinem Server?

    Freies Schreiben in Dateien auf dem PC des Benutzers funktioniert nicht. Man kann Links erzeugen, die über eine Objekt- oder Data-URL einen Download ermöglichen. Aber grundsätzlich ist eine Web-Anwendung vom Computer des Anwenders erstmal abgekapselt. Jeglicher Datentransfer muss explizit vom Anwender ausgelöst werden. In deinem Fall ginge das bspw. so:

    • ENTWEDER nach jeder Änderung auf der Seite ODER durch Klick auf einen Button führst Du dies aus:
      • Daten einsammeln
      • In einen Blob schreiben
      • Blob-Inhalt über einen FileReader in eine dataURL konvertieren
      • dataURL an ein verstecktes a Element mit download-Attribut als href setzen
    • Der Anwender muss das a Element dann zum Download klicken. Das ist lästig, wenn die Bereitstellung als data-URL bereits einen Button verlangt hat, in dem Fall könntest Du aus deinem Script heraus die click-Methode des Links aufrufen. Aber das löst eine Rückfrage des Browser aus, ob deine Seite Autodownloads starten darf.

    Rolf

    --
    sumpsi - posui - obstruxi
  3. problematische Seite

    Hallo,

    a) bestimmte Zellen abfragen, ob ihr Inhalt 'leer' bzw 'nicht leer' ist.

    wenn die Zellen eine ID haben, geht das mit textContent.

    b) nach dem Ausfüllen aller Felder den Inhalt bestimmter Felder in eine Datei schreiben.

    Das ist die "hohe Kunst". Wo soll die Datei abgelegt werden?

    • Auf dem Server? Dann musst du dich mit PHP o.Ä. beschäftigen.

    • Auf dem Rechner des Seitenbesuchers. Dann benötigst du gute Javascriptkenntnisse. Meine einfache Variante zum Speichern von Text-Daten sieht so aus:

    // data: Text-Daten
    // fn: Dateiname
    			var write_file = function(data,fn) {
    				window.URL = window.URL || window.webkitURL;
    				if(window.URL) {
    					var gpx_blob = new Blob([data], {type:'text/plain'});
    					var a = document.createElement("a");
    					a.download = fn;
    					a.href = window.URL.createObjectURL(gpx_blob);
    					document.body.appendChild(a);
    					a.click();
    					document.body.removeChild(a);
    				}
    				else {
    					var fenster = window.open("about:blank","GPX");
    					fenster.document.write(daten.replace(/</g,"&lt;"));
    				}
    			}
    
    

    Die Datei wird da aber mit großer Wahrscheinlichkeit im Downloadordner abgelegt.

    Oder such mal nach Filesaver.js.

    Gruß
    Jürgen