を保持する Cookie を作成しようとしています。
名前、電子メール、電話番号、仕事 (リスト内の選択/フィールド内のテキスト) および 2 つの iphone タイプのトグル ボタンの状態が読み込まれ、ユーザーが次にページを見たときにすべてがページに読み込まれます。
絶望的に立ち往生しています。それを十分に明確に説明するのに役立つウェブサイトが見つかりません。どんな助けでも素晴らしいでしょう、ありがとうx
を保持する Cookie を作成しようとしています。
名前、電子メール、電話番号、仕事 (リスト内の選択/フィールド内のテキスト) および 2 つの iphone タイプのトグル ボタンの状態が読み込まれ、ユーザーが次にページを見たときにすべてがページに読み込まれます。
絶望的に立ち往生しています。それを十分に明確に説明するのに役立つウェブサイトが見つかりません。どんな助けでも素晴らしいでしょう、ありがとうx
jQueryを知っている場合は、次のプラグインを使用する必要があります: jquery.cookie
使用法 :
クッキー 1 を設定:$.cookie('the_cookie', 'the_value');
クッキー 2 を設定します。$.cookie('the_cookie', 'the_value', { expires: 7 });
クッキーを取得:$.cookie('the_cookie');
クッキーを削除:$.removeCookie('the_cookie');
編集
この HTML フォームを見てみましょう:
<form method="post" action="somefile.php" id="mygreatform">
<input type="text" name="name" id="name"/>
<input type="text" name="email" name="email"/>
<input type="text" name="phone" name="phone"/>
<select name="job" id="job">
<option value="job1">Job 1</option>
<option value="job2">Job 2</option>
</select>
</form>
すべての入力値を 1 つの JSON 文字列にシリアル化し、この文字列を cookie に保存するために、javascript でフォーム送信イベントをキャッチします。
$('#mygreatform').submit(function()
{
var formValues = {
'name' : document.getElementById('name'),
'email' : document.getElementById('email'),
'phone' : document.getElementById('phone'),
'job' : document.getElementById('job')
};
// Create JSON string : {"name":"...","email":"...","phone":"...","job":"..."}
// "..." are all user inputs
var formValuesStr = JSON.stringify(formValues);
// expires 14 days from then
$.cookie('cookie_name', formValuesStr, { expires: 14 });
});
別のページで、Cookie を読み取ろうとします。
$(document).ready(function()
{
var formValuesStr = $.cookie('cookie_name');
if(formValuesStr != null)
{
var formValues = JSON.parse(formValuesStr);
alert('User email : ' + formValues['email']);
}
});
私はjquery Cookie https://github.com/carhartl/jquery-cookieを使用しており、Cookieへの書き込みと読み取りが非常に簡単になります。
おそらく、次のようなプラグインが必要です: https://github.com/ScottHamper/Cookies
または、このスクリプトを含める
/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
用途:
var selector = $('#name');
$.cookie("thename", selector, { path: '/' });
console.log(selector);
これは、純粋なJavaScriptを使用してCookieを設定する方法です
document.cookie = "cookieName=cookieValue";
Cookie は現在のドメインに設定されます。このコードをいくつかのサーバーで実行する必要があります。ブラウザで html ファイルを開くだけでは Cookie は機能しません