Saied Hr
4 سال پیش توسط Saied Hr مطرح شد
17 پاسخ

نحوه ی مشاهده جزئیات محصول به کمک id

سلام دوستان.ی سوال داشتم ،فرض کنید ی فروشگاه اینترنتی داریم که تو صفحه ی اصلیش چن تا محصول هست.الان من میخوام کاری کنم که وقتی رو هریک از محصولات کلیک شد id اون محصول توی ی سشن یا کوکی ذخیره بشه و تو صفحه ی جزئیات همون محصول بتونم اون ایدی رو به ی متد بفرستم و جزئیات رو دریافت کنم و تو صفحه نشون بدم.
مشکلی که هست اینه که وقتی رو ی محصول کلیک میکنم و جزئیات محصول تو تب جدید باز میشه و بعد دوباره روی ی محصول دیگه کلیک میکنم اونم تو ی تب جدید باز میشه.وقتی وارد تب قبلی میشم و صفحه رو ری لود میکنم چون سشن بازنویسی شده جزئیات محصول تب دوم رو میاره نه تب اولی رو .
لطفا هرکی بلده راهنمایی کنه ممنون.


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

خوب میتونی برای سشن اسم متفاوت در نظر بگیری با همون آدی محصول و چند تا حرف یه نام منحصر به فرد برای هر سشن درست کن.
مثلا

Session::put('product_' . $id, $id);

Saied Hr
@saeedlovelorn2 4 سال پیش مطرح شد
0

روش خوبیه،فقط یکم تعداد سشن ها زیاد میشه دیگه


رضا جلیلیان
تخصص : لطفا تخصص خود را وارد کنید
@rezajalilian 4 سال پیش مطرح شد
0

بیا توی سشنت یه key و value پیاده سازی کن خیلی راحت همشون رو تو یه ارایه داری ...key رو ایدی محصول و value رو هم ایدی بزار باز ....


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

چرا شما از سشن استفاده می کنی . راه به این آسونی. شما میخوای یه محصولو در یه صفحه نشون بدی یه روت براش میسازی آدی رو با اون روت میده به یه متد داخل کنترلر و اونجا محصولتو میخونی و اونو میدی به یه ویو. دیگه صحبت سشن چیه؟ شما مثل اینکه راهو اشتباه رفتی یا من متوجه حرف شما نشدم. اما این کاری که گفتم روشی هست که متاول هست.
حالا که میخوای هر محصولت در یه تب جدا باز شه مش تونی در صفحه اصلی تگ a

 <a href="{{url('product/10')}}" target="_blank">title</a>

رو مثل بالا بنویسی.@saeedlovelorn2


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

بله تعدادشون زیاد میشه و حافظه بیخودی اشغال میشه ولی برای این کار من لزومی به ست کردن سشن نمی بینم.@saeedlovelorn2


Saied Hr
@saeedlovelorn2 4 سال پیش مطرح شد
0

پروژه جوریه که حتما باید با متد post این کار هارو انجام بدم
و الا اگه متد get بود راحت تر میشد چنین کاری رو انجام داد


Saied Hr
@saeedlovelorn2 4 سال پیش مطرح شد
0

موقع گرفتن مقدار از سشن احتمالا به مشکل بر بخورم
چون نمیدونم اسم سشن رو چی وارد کنم تا بتونم مقدار سشن رو به دست بیارم


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

مراحل کارتو قدم به قدم برام توضیح بده در بالا که من متوجه تمام موضوع نشدم.@saeedlovelorn2


Saied Hr
@saeedlovelorn2 4 سال پیش آپدیت شد
0

1:ی صفحه دارم که توش چن تا محصول با ایدی متفاوت است
2:الان من کاری کردم که وقتی رو ی محصول کلیک میشه ایدی به صورت سشن ذخیره میشه و ی تب جدید باز میشه
3:تو تب جدید ی متد صدا میکنم و مقدار سشن (id)رو بهش میدم و به خوبی جزئیات برام نشون داده میشه
4:بعد ی محصول دیگه رو کلیک میکنم برای اونم ی تب جدید باز میشه و سشن باز نویسی میشه و مقدارش میشه ایدی جدید
5:الان تب اول رو که ری لود میکنم بر اساس ایدی جدید جزئیات محصول رو نشون میده
6:جزئیات محصول توی دو تا تب دقیقا میشه مثل هم
متد ها هم باید از نوع post باشن


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

در شما ره 2 شما گفتی یه تب باز میشه اگه منظور شما ویو هست خوب اون آدی رو به ویو پاس بده دیگه تو سشن ذخیره نکن. در ویو هم هر کاری خواستی با ایدی بکن یا در یک فرم دوباره اونو به سرور برای گرفتن جزئیات محصول پاس بده. در این صورت هر با که اون صفحه رو ری لود می کنی همون آدی به سرور میره.@saeedlovelorn2


احسان قربانی
تخصص : PHP ، در حال یادگیری لاراول ،...
@TimeRunner2359 4 سال پیش مطرح شد
0

@saeedlovelorn2
سلام و وقت بخیر
منم با آقای شیری‌نژاد موافق هستم
نیازی نیست لقمه رو دور گردنتون بپیچونید
راحت میشه این کار رو با pass کردن اطلاعات به ویو انجام داد


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش آپدیت شد
0

مهندس مشکلت بلاخره حل شد؟@saeedlovelorn2


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 4 سال پیش مطرح شد
0

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


Saied Hr
@saeedlovelorn2 4 سال پیش مطرح شد
0

@hosseinshirinegad98
والا ویو گفتین من فکرم رفت سراغ لاراول ی ذره سردرگم شدم
چون پروژه ی من asp.net webform هست
الان ی چیزی که به ذهنم رسیده اینه که ی اینپوت Hidden ایجاد کنم مقدارش رو ایدی قرار بدم بفرستم به صفحه ی جدید و اونجا مقدار فیلد رو بگیرم
ولی تست نکردم هنوز نمیدونم جواب میده یا نه.


AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 4 سال پیش مطرح شد
0

@saeedlovelorn2
بله دقیقا باید همینکار کنید اگر به صورت پست دارید ریکوئست میفرستید داخل ریکوئست پست میتونید آی دی را بفرستید داخل کنترلر اون مقدار میگیرید و بر اساس اون داده ها را نمایش میدید موقعی هم که میخواهید ذخیره کنید داده ها را هم داخل فرم به صورت هیدن میتونید ID محصول را بفرستید به کنترلر و از طریق اون بفهمید داده های ارسال شده مال کدوم محصول هست و محصول بروز کنید.

فقط یک مسئله وجود داره اگر این کار میخواهید برای بخش کاربرانتون میخواهید همچین چیزی پیدا کنید بهتره مستقیم با id ذخیره شده داخل دیتابیس کار نکنید. و یک توکن یا آی دی رندوم و یونیک جنریت کنید مخصوص این کار مانند توکن.
اگر برای بخش ادمین و دسترسیش محدود استفاده از خود آی دی مشکلی نداره
اینم که میگم بیشتر برای بحث امنیتی هست که کسی به داده های اصلی دیتابیستون که مهم مثل آی دی دسترسی پیدا نکنه.


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

Asp. Net webform کار کردم ولی این مدل برنامه نویسی الان کم ازش استفاده میشه الان مدل mvc مطرحست. چیزی از asp الان یادم نیست . ولی فکر کنم اونجا هم بتونی ادی رو بین صفحات به روش query string ردوبدل کنی.
جاوااسکریپت این کارو هم انجام میده اون زمان تو یه شرکتی کار میکردم پروژمون با asp. Net webform بود و بچه ها با جاوا اسکریپت و به روش query string اطلاعاتو بین صفحات منتقل میکردن اون زمان من تازه کار بودم. انشالله که این روشت جواب میده.
پیشنهاد من اینه که بیای سمت phpو لاراول
موفق باشی@saeedlovelorn2


Saied Hr
@saeedlovelorn2 4 سال پیش مطرح شد
0

از دوستان و بخصوص اقای شیری نژاد تشکر میکنم که اینقدر با حوصله جواب سوالم رو دادند.و مشکلم رو پیگیری کردند


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام