2

重複の可能性:
Html選択オプションは送信後にデータを失いました

ページの更新後も選択したオプションを保持する必要がある選択メニューがあります。これは例です:

<select id="form_frame" name="frame" onchange="getData(this);"/>
   <option value="data1" selected="selected">Data 1</option>
   <option value="data2">Data 2</option>
</select>

関数getDataは、ユーザーに情報をプルするだけです。

動的コンテンツにSmarty/phpを使用しています。

アドバイスをお待ちしております、ありがとう!

4

3 に答える 3

10

ローカルストレージでどのように行われるか:

$(function() {
    if (localStorage.getItem('form_frame')) {
        $("#form_frame option").eq(localStorage.getItem('form_frame')).prop('selected', true);
    }

    $("#form_frame").on('change', function() {
        localStorage.setItem('form_frame', $('option:selected', this).index());
    });
});

フィドル

于 2012-11-01T19:20:13.423 に答える
0

選択したオプション要素のIDまたは値をphpsession($_SESSION['selected_option_id'])に入れます。このようにして、この値はすべてのページに渡されます。次に、オプション要素を生成するコードを変更して再度チェックし$_SESSION['selected_option_id']、一致する場合は、選択した属性をオプション要素に設定します。

HTTPはステートレスプロトコルであるため、セッションはリクエスト間で値を共有するための良い方法です。

localStorageとCookieの前にセッションを使用することをお勧めします。これらは、クライアントのブラウザーで使用できないか、有効になっていない可能性があるためです。セッションはapache/phpの機能であり、サーバー側でサポートされています。

PHPセッション処理

于 2012-11-01T19:14:37.137 に答える
-1

クッキーを使用することができます。ただし、サイトからのCookieを受け入れないユーザーに対して機能させたい場合は、URLにハッシュタグを追加してください。選択フィールドを変更すると、ハッシュタグが更新されます。ページの読み込み時に、現在のハッシュタグを確認し、値がハッシュタグの1つと一致するオプションにselectを設定します。

于 2012-11-01T19:20:22.057 に答える