در مورد کوکی ها و استفاده توی jquery لطفا توضیح بدید

phpweb

Active Member
من باید لیست کالاهای مورد علاقه کاربر رو توی کوکی ذخیره کنم و نمایش بدم. برای این کار باید از ایجکس و جی کوئری استفاده کنم.

منظورم از اطلاعات کالاها id, title و image هست که همون آی دی، عنوان کالا و تصویر کالا هستن.

سوال اول: چطور می تونم با جی کوئری یه آرایه چند بعدی ایجاد کنم و اطلاعات کالاهای مورد علاقه کاربر رو توی کوکی ذخیره کنم؟ البته توجه کنید که با انتخاب کالاهای بیشتر، باید کالاهای جدید به مقادیر قبلی اضافه بشن.

سوال دوم: موقعی که بخوام کالاهای مورد علاقه رو نمایش بدم باید چطور توی آرایه پیمایش کنم؟

سوال سوم: وقتی یه درخواست ایجکس ایجاد می شه، آیا کوکی ها برای سرور ارسال می شن یا نه؟ اگر کوکی ها با درخواست ایجکس ارسال نمی شن، چطور می تونم کوکی رو برای سرور بفرستم و از سرور بگیرم؟

هرچند زیاد شد ولی سوال چهارم: موقعی که PHP مقادیری رو به کمک setcookie توی کوکی ذخیره می کنه اونها رو urlencode می کنه و موقع نمایش اونها رو urldecode می کنه. آیا این مورد توی جی کوئری رعایت می شه یا خودمون باید این کار رو دستی انجام بدیم؟
 

eAmin

Well-Known Member
اگر میخواید لیست کالاهای مورد علاقه شامل حروف و ... رو توی کوکی ذخیره کنید: اولا اینکار نامعقول هست، دوما کوکیها اصلن مناسب ذخیره کردن لیست/آرایه ها نیستن، سوما حداکثر حجمی که شما مجاز هستید برای هر کوکی استفاده کنید 4096 بایت معادل 4 کیلوبایت هست.
ولی اگر میخواید فقط id یک محصول رو که از نوع فقط عددی هست رو ذخیره کنید اینکار مشکلی نداره. در صورت بیشتر شدن محصولات باید حواستون به محدودیت کوکی ها باشه.

سوال اول: باید در نظر بگیرید که داده هایی که در کوکی ذخیره میکنید بصورت رشته/string هست و شما باید برای اینکه براحتی بتونید این رشته رو پردازش کنید از فرمت JSON برای ذخیره سازی داده هاتون استفاده کنید.
سوال دوم: فرض کنید آرایه ای شبیه این دارید "[[1,2,3,4],[6,7,8,9], [5,1,4,2]]" پس برای parse کردن به اینصورت عمل میکنیم:
[JSS]
var arrStr = Cookie.read("storedArray"); // String : "[[1,2,3,4],[6,7,8,9], [5,1,4,2]]"
var arrParse = JSON.parse(arrStr);

for (var i = 0; i < arrParse.length; i++) {
console.log(arrParse);
}
[/JSS]
البته این بیشتر شبیه کد هست و امتحان نشده و همچنین باید کدهای مورد نیاز برای خوندن کوکی رو آماده کنید.

سوال سوم: بله ارسال میشن.
سوال چهارم: jquery بصورت درونی امکان ایجاد/خوندن کوکیها رو نداره و باید از پلاگینهایی که برای اینکار نوشته شدن ازش استفاده کنید. اکثر این پلاگینها هم اطلاعات رو بصورت urlencode در میارن، اگر پلاگینی که استفاده کردید این امکان رو نداشت میتونید از تابع encodeURIComponent برای تبدیل استفاده کنید.
 

جدیدترین ارسال ها

بالا