20を超えるフィールド(テキスト、選択、テキストエリア、ラジオ)を持つフォームがあります。javascriptを使用して、送信された値をブラウザに記憶させるにはどうすればよいですか?を使用してphpでそれを行うことができることを私は知ってい$_SESSION
ます。しかし、私はそれをjavascriptまたはクライアント側の言語で行う必要があります。そのため、ユーザーが間違った情報を入力してフォームに戻った場合でも、値を再入力する必要はありません。誰かがこれを達成する方法を提案できますか?
4 に答える
あなたはクッキーを使うことができます!https://developer.mozilla.org/en-US/docs/DOM/document.cookie
Ñamñam:)
HTML5ローカルストレージhttp://diveintohtml5.info/storage.htmlの使用を見てみましょう。フォームを送信した後に新しいページにアクセスすると、ローカルのjavascriptデータがすべて失われるため、javascriptだけでは目的を達成できません。PHP、ローカルストレージ、またはCookieのいずれかを使用して、何らかの方法で保存する必要があります。
サポートする必要があるブラウザに応じて、HTML5 でデータをローカルに保存するための 2 つの新しいオブジェクトがあります。
https://developer.mozilla.org/en-US/docs/DOM/Storage
サポートはIE8に戻るようです。
この簡単なテストを作成しました。うまくいくようです。
<!doctype html>
<html>
<head>
<script>
function dotest(){
var input = document.getElementById('test');
if( localStorage.test ){
input.value = localStorage.test;
}
input.addEventListener('blur', function(){
localStorage.test = input.value;
}, false);
}
</script>
</head>
<body onload="dotest()">
<input type="text" id="test">
</body>
app.locals または res.locals に保存できます。長期間にわたってデータを永続化する必要がある場合 mongoDB
これは、値を保存できるようにローカルを使用する方法の例です。別のビューから別の値を取得して、両方をデータベースにスローします。
//route to receive the driver name
app.post('/newdriver', function(req, res){
app.locals.myVar1 = req.body.newDriver;
console.log(app.locals.myVar1);
res.redirect('/newdriverlist')
});