PDA

View Full Version : چطور امکان تغییر ترتیب رکورد های جدول رو به کاربر بدم ؟



Mohammad-tashi
یک شنبه 05 اردیبهشت 1395, 05:36 صبح
سلام دوستان
همه ما دیدم در سیستم ها آماده میشه مثلا ترتیب گزینه های منو رو بعد از ذخیره تغییر داد
مثلا گزینه آخر رو بیاری اول و امثالهم

حالا سوال من دو قسمته

اول اون نما و کلاینت ساید چطور میشه قابلیت درگ و دراپ در صفحه ایجاد کرد
سوال دوم ...منطق جابه جایی چطور؟ چه کارهایی باید انجام بشه.الگوریتمش چیه؟


ممنون میشم راهنمایی نمایید
این گزینه آموزشی در وب فارسی نداره

vahidmoghadam
یک شنبه 05 اردیبهشت 1395, 06:41 صبح
در مورد قسمت دوم سوالتون من خودم از این منطق استفاده میکنم :
یک فیلد در دیتابیس با عنوان showorder قرار میدم و موقع select و نمایش رکورد ها بر اساس همین فیلد مرتب میکنم ORDER BY showorder
این طوری به ترتیب شماره ذخیره شده توی showorder قرار میگیرن و بر اساس اون ترتیب دلخواه شما نمایش داده میشن

در مورد قسمت اول سوالتون هم نمونه هاش رو دیدم ولی تجربه ای در پیاده سازیش نداشتم، فکر کنم با Ajax یا شاید هم jQuery همچین کاری رو بشه انجام داد که به محض اتمام درگ اند دراپ اون فیلد showorder مخصوص همون رکورد update بشه

Mohammad-tashi
دوشنبه 06 اردیبهشت 1395, 05:29 صبح
دوستان
فیلد مرتب سازی هم بذاریم چندتا مشکل داره
از کجا بدونیم فیلد جدید چه شماره ای باید بگیره؟
وقتی منو من تو در تو است ...و یه فیلدی برای ذخیره سازی منو والد داریم چیکار کنیم ؟ مثلا میخاد زیر منو های یک گزینه رو مرتب کنه چه روشی میشه؟


اون اولی رو خیلی نیاز دارم ...هیچ مرجعی نداره

Farshid007
دوشنبه 06 اردیبهشت 1395, 14:34 عصر
پیشنهاد بنده (البته ن تست کردم ن از جایی شنیدم ...فقط و فقط همین الان زد به ذهنم ):

قابلیت sortable با Drag & Drop توسط JQuery (https://jqueryui.com/sortable/)امکان پذیره
و اینکه ترتیب لیست رو ذخیره کنی
هر منو یک ویژگی با عنوان مثلا Z-index داره
اول میریم سراغ آیتم جدید:
برای ایتم جدید کافیست بزنی :


SELECT MAX(Z-index) FROM menus

مقدار Z-index جدید میشه: خروجی + 1

حال میریم سراغ جابجایی منو ها
وقتی جای دوتا منو با هم عوض میشه باید مقدار Z-index های اونا نیز با هم عوض بشه
مثلا یه منو داریم :
Item Name Z-Index
Farshid 1
Mohamad 3
Ali 2

ترتیب نمایش:
Farshid
Ali
Mohamad
حال جای Ali را با Farshid عوض میکنیم
ترتیب نمایش:
Ali
Farshid
Mohamad
جدول منو ها:
Item Name Z-Index
Farshid 2
Mohamad 3
Ali 1
یعنی در واقع هنگام جابجایی ما باید اون Z-index رو جابه جا کنیم با هم
بازم چیزی به ذهنم رسید میگم:لبخندساده:

Mohammad-tashi
سه شنبه 07 اردیبهشت 1395, 03:10 صبح
داداش یکم بیشتر توضیح میدی؟

Farshid007
چهارشنبه 08 اردیبهشت 1395, 09:24 صبح
چیو توضیح بدم ؟
این پیشنهاد بنده بود برای کلیت کار
نمیدونم عملی بشه یا ن اصن
شروع کن به نوشتنش ایشالله که میشه
کجاشو توضیح بدم؟