2016-08-24 6 views
7

Ich versuche, die Eingabe aus einem Formular zu übernehmen und es in eine Textdatei zu speichern, die sich im selben Ordner wie die HTML-Datei befindet. Das ist, was ich habe, so weit:Javascript In Textdatei schreiben

<!doctype html> 
 

 
<html lang="en"> 
 
<head> 
 
\t <meta charset="utf-8"> 
 

 
\t <title>Reservation</title> 
 
\t <meta name="description" content="The HTML5 Herald"> 
 
\t <meta name="author" content="SitePoint"> 
 

 
\t <link rel="stylesheet" href="css/styles.css?v=1.0"> 
 

 
    \t <script> 
 
\t \t function writeToFile(item, name, time) 
 
\t \t { 
 
\t \t \t alert("Hello " + item); 
 
\t \t \t var fso = new ActiveXObject("Scripting.FileSystemObject"); 
 
\t \t \t var fh = fso.OpenTextFile("E:/labChart/etc/reserve.text", 8); 
 
\t \t \t fh.WriteLine(item); 
 
\t \t \t fh.Close(); 
 
\t \t } 
 

 
\t \t function readFile() 
 
\t \t { 
 
\t \t \t var fso = new ActiveXObject("Scripting.FileSystemObject"); 
 
\t \t \t var fh = fso.OpenTextFile("reserve.text", 1, false, 0); 
 
\t \t \t var lines = ""; 
 
\t \t \t while (!fh.AtEndOfStream) { 
 
\t \t \t \t lines += fh.ReadLine() + "\r"; 
 
\t \t \t } 
 
\t \t \t fh.Close(); 
 
\t \t \t return lines; 
 
\t \t } 
 
\t </script> 
 
    </head> 
 
\t <body> 
 
\t \t Reservation 
 
\t \t <br> 
 
\t \t <form> 
 
\t \t \t Item: 
 
\t \t \t <br> 
 
\t \t \t <input type="text" name="item" id="item"> 
 
\t \t \t <br> 
 
\t \t \t Name: 
 
\t \t \t <br> 
 
\t \t \t <input type="text" name="name" id="name"> 
 
\t \t \t <br> 
 
\t \t \t Time: 
 
\t \t \t <br> 
 
\t \t \t <input type="date" name="time" id="time"> 
 
\t \t \t <br> 
 
\t \t \t <br> 
 
\t \t \t <input type="submit" value="Submit" onclick="writeToFile(document.getElementById('item').value, document.getElementById('name').value, document.getElementById('time').value)"> 
 
\t \t </form> 
 
    \t \t <script src="js/scripts.js"></script> 
 
\t </body> 
 
    </html>

Das die Informationen nimmt von „Punkt“ und es an die Funktion writeToFile() übergeben, da der Test Alarm funktioniert. Aber wenn ich die Datei reserve.text überprüfe, wird dort nichts geschrieben. Ich bin sehr neu in Javascript und das meiste davon ist eine Verschmelzung von Code Ich sah andere Leute online für ähnliche Effekte verwenden. Weiß jemand, warum es nicht funktioniert? Schreibe ich den Pfad falsch? Schreib ich das Skript nicht korrekt?

+0

wahrscheinlich wird dieser Link Ihnen helfen, was Sie tun [klicken Sie auf hier] (http://stackoverflow.com/questions/582268/read-write-to-file-using-jquery/582281#582281) – Keppy

+0

Wenn Sie sagen, "der gleiche Ordner wie die HTML-Datei" - ich nehme an, das ist nicht eine öffentlich zugängliche Webseite? –

+0

activex ist tot. Wirf deine 20 Jahre alten Bücher aus dem Fenster. – GottZ

Antwort

6

Das Problem damit ist einfach: Sagen wir, ein Entwickler erstellt Javascript-Code, um durch alle Ihre Dateisystem gehen und füllen Sie es mit Dummy-Dateien, ruinieren Ihre Festplatte in den Prozess? Aus diesem Grund können Sie mit javascript diese Art von Operation nicht ausführen. Wenn wir Informationen speichern möchten, geschieht dies normalerweise mit serverseitigem Code und nicht mit dem Computer des Kunden (es sei denn, wir sprechen über Dinge wie Cookies).

Der Punkt meiner Antwort ist es, Sie überdenken zu lassen, wer das Sparen und wohin tut. Es sollte Sache des Servers sein, irgendwelche Informationen für einen Benutzer zu speichern und zu behalten, und so würden Sie diese Art von JavaScript-Code nicht schreiben ... Es ist am besten, Daten zu speichern, die Ihr Client nicht kontrollieren oder bearbeiten kann, wie auf dem Server Beispiel.

Ich könnte einige einfache PHP-Code vorschlagen, und anstatt in einer Textdatei speichern, versuchen Sie eine Datenbank ... PHP ist eine serverseitige Sprache, mit der Sie Dinge in Dateien auf Ihrem Server-Computer, aber Ihrem Server speichern können muss in der Lage sein, PHP zu laufen, die meisten Computer kommen nicht mit der PHP-Sprache und so brauchen Sie auch einen Webserver mit eingebautem PHP ..

-1

Meiner Meinung nach ist Ihre gesamte Herangehensweise schlecht; Sie müssen PHP und mySQL lernen, um persistente Daten zu speichern und zu laden. - Edit: Zugriff auf das Dateisystem von JavaScript ist ein großes Sicherheitsrisiko und daher im Allgemeinen nicht erlaubt. Sofern Ihr Ziel nicht speziell darin besteht, Dateien von JS zu schreiben, gibt es bessere Alternativen.

Wie auch immer, dieser Code funktioniert nur mit dem Internet Explorer und nur mit den Sicherheitseinstellungen weit unten. Sie sollten dies jedoch nicht verfolgen.

Wenn Ihr Endziel ist, eine Web-App zu schreiben, die Reservierungen speichert und anzeigt, erhalten Sie XAMPP und finden Sie ein Anfänger PHP + Datenbank-Tutorial.

+0

Sie müssen erklären, warum seine Vorgehensweise schlecht ist. Ich denke, 99% der Leute hier würden mit Ihnen übereinstimmen, aber Ihre Antwort fühlt sich gezwungen und verschlossen. – NoobishPro

+0

Ist nicht der zweite Absatz ein absolut guter Grund, warum dieser Ansatz schlecht ist? –

+0

Es erklärt nicht wirklich, warum es ein Sicherheitsrisiko ist, warum es nur auf Internet Explorer funktioniert und warum er speziell PHP und/oder MySQL verwenden sollte. Ich habe deine Antwort nicht abgelehnt. Ich kommentiere nur – NoobishPro