سلام دوستان.ی سوال داشتم ،فرض کنید ی فروشگاه اینترنتی داریم که تو صفحه ی اصلیش چن تا محصول هست.الان من میخوام کاری کنم که وقتی رو هریک از محصولات کلیک شد id اون محصول توی ی سشن یا کوکی ذخیره بشه و تو صفحه ی جزئیات همون محصول بتونم اون ایدی رو به ی متد بفرستم و جزئیات رو دریافت کنم و تو صفحه نشون بدم.
مشکلی که هست اینه که وقتی رو ی محصول کلیک میکنم و جزئیات محصول تو تب جدید باز میشه و بعد دوباره روی ی محصول دیگه کلیک میکنم اونم تو ی تب جدید باز میشه.وقتی وارد تب قبلی میشم و صفحه رو ری لود میکنم چون سشن بازنویسی شده جزئیات محصول تب دوم رو میاره نه تب اولی رو .
لطفا هرکی بلده راهنمایی کنه ممنون.
خوب میتونی برای سشن اسم متفاوت در نظر بگیری با همون آدی محصول و چند تا حرف یه نام منحصر به فرد برای هر سشن درست کن.
مثلا
Session::put('product_' . $id, $id);
بیا توی سشنت یه key و value پیاده سازی کن خیلی راحت همشون رو تو یه ارایه داری ...key رو ایدی محصول و value رو هم ایدی بزار باز ....
چرا شما از سشن استفاده می کنی . راه به این آسونی. شما میخوای یه محصولو در یه صفحه نشون بدی یه روت براش میسازی آدی رو با اون روت میده به یه متد داخل کنترلر و اونجا محصولتو میخونی و اونو میدی به یه ویو. دیگه صحبت سشن چیه؟ شما مثل اینکه راهو اشتباه رفتی یا من متوجه حرف شما نشدم. اما این کاری که گفتم روشی هست که متاول هست.
حالا که میخوای هر محصولت در یه تب جدا باز شه مش تونی در صفحه اصلی تگ a
<a href="{{url('product/10')}}" target="_blank">title</a>
رو مثل بالا بنویسی.@saeedlovelorn2
بله تعدادشون زیاد میشه و حافظه بیخودی اشغال میشه ولی برای این کار من لزومی به ست کردن سشن نمی بینم.@saeedlovelorn2
پروژه جوریه که حتما باید با متد post این کار هارو انجام بدم
و الا اگه متد get بود راحت تر میشد چنین کاری رو انجام داد
موقع گرفتن مقدار از سشن احتمالا به مشکل بر بخورم
چون نمیدونم اسم سشن رو چی وارد کنم تا بتونم مقدار سشن رو به دست بیارم
مراحل کارتو قدم به قدم برام توضیح بده در بالا که من متوجه تمام موضوع نشدم.@saeedlovelorn2
1:ی صفحه دارم که توش چن تا محصول با ایدی متفاوت است
2:الان من کاری کردم که وقتی رو ی محصول کلیک میشه ایدی به صورت سشن ذخیره میشه و ی تب جدید باز میشه
3:تو تب جدید ی متد صدا میکنم و مقدار سشن (id)رو بهش میدم و به خوبی جزئیات برام نشون داده میشه
4:بعد ی محصول دیگه رو کلیک میکنم برای اونم ی تب جدید باز میشه و سشن باز نویسی میشه و مقدارش میشه ایدی جدید
5:الان تب اول رو که ری لود میکنم بر اساس ایدی جدید جزئیات محصول رو نشون میده
6:جزئیات محصول توی دو تا تب دقیقا میشه مثل هم
متد ها هم باید از نوع post باشن
در شما ره 2 شما گفتی یه تب باز میشه اگه منظور شما ویو هست خوب اون آدی رو به ویو پاس بده دیگه تو سشن ذخیره نکن. در ویو هم هر کاری خواستی با ایدی بکن یا در یک فرم دوباره اونو به سرور برای گرفتن جزئیات محصول پاس بده. در این صورت هر با که اون صفحه رو ری لود می کنی همون آدی به سرور میره.@saeedlovelorn2
@saeedlovelorn2
سلام و وقت بخیر
منم با آقای شیرینژاد موافق هستم
نیازی نیست لقمه رو دور گردنتون بپیچونید
راحت میشه این کار رو با pass کردن اطلاعات به ویو انجام داد
سلام
دوستمون در ابتدا خیلی عالی راهنمایی کردند ، آدرس دهی رو نباید به این صورت به سش ها واگذار کنید، فقط زمانی اون ها رو در سش ذخیره کنید که کاربر اون رو به سبدش اضافه کنه و البته چون کاربر ممکنه بیش از یک کالا رو به سبدش اضافه کنه باید به صورت آرایه در سش ها ذخیره کنید.
اگر هم قصد شما برای ذخیره سازی در سش به خاطر ایجاد دکمه بک هست باز هم این راهش نیست.
@hosseinshirinegad98
والا ویو گفتین من فکرم رفت سراغ لاراول ی ذره سردرگم شدم
چون پروژه ی من asp.net webform هست
الان ی چیزی که به ذهنم رسیده اینه که ی اینپوت Hidden ایجاد کنم مقدارش رو ایدی قرار بدم بفرستم به صفحه ی جدید و اونجا مقدار فیلد رو بگیرم
ولی تست نکردم هنوز نمیدونم جواب میده یا نه.
@saeedlovelorn2
بله دقیقا باید همینکار کنید اگر به صورت پست دارید ریکوئست میفرستید داخل ریکوئست پست میتونید آی دی را بفرستید داخل کنترلر اون مقدار میگیرید و بر اساس اون داده ها را نمایش میدید موقعی هم که میخواهید ذخیره کنید داده ها را هم داخل فرم به صورت هیدن میتونید ID محصول را بفرستید به کنترلر و از طریق اون بفهمید داده های ارسال شده مال کدوم محصول هست و محصول بروز کنید.
فقط یک مسئله وجود داره اگر این کار میخواهید برای بخش کاربرانتون میخواهید همچین چیزی پیدا کنید بهتره مستقیم با id ذخیره شده داخل دیتابیس کار نکنید. و یک توکن یا آی دی رندوم و یونیک جنریت کنید مخصوص این کار مانند توکن.
اگر برای بخش ادمین و دسترسیش محدود استفاده از خود آی دی مشکلی نداره
اینم که میگم بیشتر برای بحث امنیتی هست که کسی به داده های اصلی دیتابیستون که مهم مثل آی دی دسترسی پیدا نکنه.
Asp. Net webform کار کردم ولی این مدل برنامه نویسی الان کم ازش استفاده میشه الان مدل mvc مطرحست. چیزی از asp الان یادم نیست . ولی فکر کنم اونجا هم بتونی ادی رو بین صفحات به روش query string ردوبدل کنی.
جاوااسکریپت این کارو هم انجام میده اون زمان تو یه شرکتی کار میکردم پروژمون با asp. Net webform بود و بچه ها با جاوا اسکریپت و به روش query string اطلاعاتو بین صفحات منتقل میکردن اون زمان من تازه کار بودم. انشالله که این روشت جواب میده.
پیشنهاد من اینه که بیای سمت phpو لاراول
موفق باشی@saeedlovelorn2
از دوستان و بخصوص اقای شیری نژاد تشکر میکنم که اینقدر با حوصله جواب سوالم رو دادند.و مشکلم رو پیگیری کردند
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟