人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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


●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:Gmail JavaScript イメージ クラス メール
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Yota
●35ポイント

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

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

◎質問者からの返答

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

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

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


2 ● mori
●35ポイント

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を利用して入力フォームの内容を自動保存する

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ