0

20を超えるフィールド(テキスト、選択、テキストエリア、ラジオ)を持つフォームがあります。javascriptを使用して、送信された値をブラウザに記憶させるにはどうすればよいですか?を使用してphpでそれを行うことができることを私は知ってい$_SESSIONます。しかし、私はそれをjavascriptまたはクライアント側の言語で行う必要があります。そのため、ユーザーが間違った情報を入力してフォームに戻った場合でも、値を再入力する必要はありません。誰かがこれを達成する方法を提案できますか?

4

4 に答える 4

2

あなたはクッキーを使うことができます!https://developer.mozilla.org/en-US/docs/DOM/document.cookie

Ñamñam:)

于 2013-02-27T04:17:25.973 に答える
0

HTML5ローカルストレージhttp://diveintohtml5.info/storage.htmlの使用を見てみましょう。フォームを送信した後に新しいページにアクセスすると、ローカルのjavascriptデータがすべて失われるため、javascriptだけでは目的を達成できません。PHP、ローカルストレージ、またはCookieのいずれかを使用して、何らかの方法で保存する必要があります。

于 2013-02-27T04:19:36.123 に答える
0

サポートする必要があるブラウザに応じて、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>

于 2013-02-27T04:20:16.970 に答える
0

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')
     });
于 2013-02-27T04:22:55.363 に答える