入力フォームに入力した内容を5分おきに自動保存(自動登録?)させたいと考えています。


何かjavascriptのクラスなどで手軽に実装できるなら是非導入を検討しています。

イメージとしてはGmailでメールを書いている途中に自動的に保存させるようなイメージです。

具体的に何を使ってどうすればいいのでしょうか?
また、懸念しておくべきことは何でしょうか?

回答の条件
  • 1人2回まで
  • 登録:2007/06/14 14:52:36
  • 終了:2007/06/21 14:55:15

回答(2件)

id:Yota No.1

Yota回答回数453ベストアンサー獲得回数282007/06/14 18:35:00

ポイント35pt

どこに保存するかが問題だと思います。そして保存したものをどこで呼び出すか。

1.<input type="hidden" />に保存しても、ブラウザを閉じたらなくなってしまう。

2.Ajaxで外部ファイルにテキストとして書き出す。

3.submit先に5分おきに送る。

いずれにしても、骨格としてはこういうものを作ればいいと思います。


window.onload = fuction() {

setTimeout(save, 300000);

}

function save () {

 保存メソッド

}

参考にしたサイト

http://www.ne.jp/asahi/hishidama/home/tech/jscript/timer.html

id:dingding

保存は、正常に登録したときに保存するデータベースに保存するつもりです。

保存は、submit()を呼ばなくても、POSTできるものなのでしょうか?

XMLHTTPRequestとか使うんでしょうか?

2007/06/14 19:46:47
id:y_mori No.2

mori回答回数2ベストアンサー獲得回数02007/06/14 21:31:15

ポイント35pt

submitを呼ばなくてもXMLHTTPReuqestを利用すればPOSTできます。

JavaScript部分はこんな感じです。

function init(){
	setInterval("save()",1000*5);//5秒おきに保存
}
function save() {
    httpObj = createXMLHttpRequest();

    //サーバ側の処理を指定
    httpObj.open("post", "/test/save.do",false);     
    httpObj.setRequestHeader("content-type",
    "application/x-www-form-urlencoded;charset=UTF-8");

    //フォームの入力データを送信
    httpObj.send("address=" + 
    encodeURI(document.forms[0].address.value));

}
// XMLHttpRequestオブジェクトを生成
function createXMLHttpRequest(){
	
	if(window.XMLHttpRequest) {
	httpObj = new XMLHttpRequest();

	} else if(window.ActiveXObject) {
	try {
		httpObj = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		httpObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return httpObj;
}

私のブログにもう少し詳しく書いておきました。(サーバー側はJavaを利用ですが)

ソフトウェアエンジニアの日記 - Ajaxを利用して入力フォームの内容を自動保存する

id:dingding

とても詳しい解説ありがとうございます。

日記もぜひとも拝見させていただきます。

2007/06/15 01:41:22

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません