2016-08-24 21 views
7

私はフォームから入力を取り、それをhtmlファイルと同じフォルダにあるテキストファイルに保存しようとしています。これは私がこれまで持っているものです。Javascript Textfileに書き込む

<!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>

これは、「アイテム」から情報を取得し、テストアラートが作業を行うための機能WRITETOFILE()に渡しありません。しかし、私がファイルreserve.textをチェックするたびに、そこには何も書き込まれません。私はJavaScriptにはとても新しいので、これのほとんどは、他の人が同様の効果を得るためにオンラインで使っているのを見たコードの合併です。誰もそれが動作していない理由を知っていますか?パスを間違って書いていますか?スクリプトを正しく書いていないのですか?

+0

おそらくこのリンクは、あなたが行っていることに役立ちます[クリックここで](http://stackoverflow.com/questions/582268/read-write-to-file-using-jquery/582281#582281) – Keppy

+0

あなたが 'htmlファイルと同じフォルダを言うとき - 私はそれを取る一般公開のウェブサイトのページ? –

+0

activexが死んでいます。あなたの20歳の本を窓から投げる。 – GottZ

答えて

6

問題は簡単です:デベロッパーは、すべてのファイルシステムを通過してダミーファイルを作成し、プロセスでハードドライブを台無しにするためのjavascriptコードを作成したとしますか?そのため、javascriptではこの種の操作を実行できません。情報を保存したいときは、通常、クッキーのようなことについて話しているのでない限り、クライアントのコンピュータではなくサーバー側のコードを使用して行われます。

私の答えのポイントは、誰が貯蓄をしているのか、どこに再考させるのかです。ユーザーのために情報を保存して保持するには、サーバーに任せておく必要があります。このようなJavaScriptコードは書かないでください。サーバー上でのように、クライアントが制御または編集できない場所にデータを保存することをお勧めしますインスタンス。

私は簡単なPHPコードを提案し、テキストファイルの中に保存する代わりに、データベースを試してみることができます... PHPはあなたのサーバコンピュータのファイルに物事を保存させるサーバー側言語ですが、 PHPを実行できる必要があります。ほとんどのコンピュータはPHP言語で組み込まれていないので、PHPを組み込んだWebサーバーも必要です。

-1

私の意見では、あなたの全体のアプローチは悪いです。永続的なデータを格納およびロードするためにPHPとmySQLを学ぶ必要があります。 - 編集: JavaScriptからファイルシステムにアクセスするとセキュリティ上のリスクが大きくなり、一般に許可されません。あなたの目標が具体的にJSからのファイルを書くことでない限り、より良い選択肢があります。

とにかく、このコードはInternet Explorerでのみ動作し、セキュリティ設定の方法が下向きです。あなたはこれを追い越すべきではありません。

最終目標が予約を保存して表示するWebアプリケーションを作成する場合は、XAMPPを入手して初心者のPHP +データベースチュートリアルを見つけてください。

+0

彼のアプローチが悪い理由を説明する必要があります。私はここの人々の99%があなたに同意するだろうと考えていますが、あなたの答えは強制的かつ閉鎖的だと感じています。 – NoobishPro

+0

第2段落は、このアプローチが悪い理由の完全な正当な理由ではありませんか? –

+0

本当になぜそれがセキュリティ上のリスクであるのか、なぜInternet Explorer上でしか動作しないのか、そしてなぜPHPやMySQLを使うべきなのかを説明していません。私はあなたの答えbtwをdownvoteしていない。私はコメントしているだけです – NoobishPro

関連する問題