شخصی سازی صفحه برای کاربر

foranyone

Well-Known Member
دوستان فرض من قسمت title منو ، یه علامت + گذاشتم که اگه منو رو باز کنین تبدیل به - میشه ،

الان این کد خیلی خوب کار میکنه ، من می خوام بعد رفرش صفحه ، منو هایی که بسته بودن بسته بمونن، و اونایی که باز

بودن باز بمونن ، طبیعیه که باید از کوکی ها استفاده کنم تا کاربر در مراجعات بعدی هم نیاز نداشته باشه تا تنظیمات رو

از اول ست کنه ،

الان می خوام ID منو هام رو داخل کوکی بنویسم تا موقع لود صفحه با استفاده از جی کوئری و یه همچین کدی
کد:
$('#id').hide();

مشکلم از اینجا شروع میشه ، ID هایی رو که قراره مخفی شن چطوری تو کوکی بنویسم ؟

تو خود نوشتن تو کوکی مشکلی ندارم ، منظورم ساختار ی که اونا رو بنویسم ، چون تعدادشون نامشخصه :-؟؟

میشه یه آرایه رو تو کوکی نوشت؟
 

eAmin

Well-Known Member
سلام.

کار ساده ای هست، فقط باید یه خرده روش کارکنید.
ببین فرض کن شما اینها رو دارید: id1, id2, id3, id4 خب حالا توی رویداد هر کدوم از اینها اول چک کن ببین مقدار نمایش اون المنت hide هست یا show. بعد اگر مقدار هر یک از اینها درست بود شما یک کوکی بساز و پارامتری به نام id1visibility و مقدارش رو برابر با موقعیت المنت بزار.

وقتی تمامی کارهای گفته شده رو انجام دادید، ادامه اش دیگه کاری نداره و می تونید در رویداد onload چک کنید و ببینید مقدار پارامتر id1visibility برابر با چه مقداری هست، اگر مثلا visible بود شما المنت مورد نظر رو به نمایش در بیارید. و اگر غیر از این بود المنت مورد نظر رو غیب کنید.

اگر قاطی پاتی گفتم ببخشید، چون یه خرده حالم خوش نیست.
موفق باشید.
 

foranyone

Well-Known Member
آخه امین جان مشکل من اینجاست که نمیدونم منو ها ID شون چیه !

چون منو ها تو دیتابیس ذخیره شدن و ID منو ، همون ID ایش تو دیتابیشه !

یعنی مدیر سایت ممکن منو ها رو پاک کنه ، منو های جدید بسازه و ....

البته یه نکته ای هم الن موقع تایپ به ذهنم رسید ، اگه من بگم ID شماره 3 ، Hide باشه ، و بعدا این منو حذف شه.... کدم error

میده !

خلاصه کلام : میشه ID ها رو به صورت یه آرایه تو کوکی ذخیره کرد؟

اینجوری می تونم با استفاده از یه for از 0 تا length اون آرایه منو ها رو موقع لود صفحه مخفی کنم.

خیلی ممنون بابت همفکری .
 

eAmin

Well-Known Member
خب اینجوری یه خرده کار مشکلتر می شه تا حدودی...
برای اینکه به این امر دست پیدا کنید باید دستورات جاوااسکریپت رو به صورت پویا تولید کنید، مثلا وقتی یه id حذف یا اضافه می شه، این اعمال رو هم در کد JavaScrip مورد نظر ایجاد کنید.
 

foranyone

Well-Known Member
اینجوری با اون کوکی که روی سیتم یه کاربر ذخیره شده چیکار کنم؟ اگه من دیگه اون id رو نداشته باشم؟
 

tarhebartar

Member
هر کی خربزه می خوره پای لرزش هم میشینی !!!!

البته می بخشید

اگر آجاکس بلد بودی می شد کارهایی کرد ولی شما باید هر بار یه کوئری پاس بدی و بعد با اون کوئری مقدار کوکی رو ست کنی
 

foranyone

Well-Known Member
معذرت میخوام من کجای کارم خربزه خردم؟:D

میشد کارایی کرد جواب قانع کننده و علمی نیست، لطفا جواب کامل:wink:
 

eAmin

Well-Known Member
اینجوری با اون کوکی که روی سیتم یه کاربر ذخیره شده چیکار کنم؟ اگه من دیگه اون id رو نداشته باشم؟
ببینید، با اون روشی که می گم شما می تونید از دیتابیس اطلاعات رو بخونید و توی متغیر جاوااسکریپت بریزید و بعد از انجام اینکار می مونه چک کردن متغیر که اون هم کاری نداره و با یه شرط چک می کنید که اگر مقدارش برابر با کوکی بود، اون رو حذف و یا اضافه کنید.
کد:
<?php

    echo "<script type='text/javascript'>
        var getId = '$getTreeId';
        if (getCoockie('coockie_name') == getId) {
            document.getElementById(coockie_value).style.display = 'none';
            setCoockie('coockie_name', getId, 'hide');
        } else if ....
          </script>";
?>
طبق کد بالا شما می تونید حذف و یا اضافه و ... کنید، چون ساختار کد اصلی شما رو نمی دونستم فقط سر هم بندی کردم.
 

foranyone

Well-Known Member
دستت درد نکنه امین جان ، لطف کردی

اون پلاگین رو نگاه کردین؟
 

foranyone

Well-Known Member
دوس دارم اون پلاگین رو طوری تغیر بدم که تغیرات داخل کوکی ثبت شه ! ولی زیاد از کدی که نوشته شده بود سر در نیاوردم!
 

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

بالا