برای ایجاد یک فرم ساز چه باید کرد؟

[rtl]

با سلام.

دوستان یک فرم ساز پویا لازم دارم که در زمان اجرا مدیر فیلدها را مشخص کند و زمانی که کاربر برخی از آن فیلدها را پر می کند، بر اساس آن فیلدها برخی دیگر از فیلدها تغییر می کنند.؟

کسی می تونه کمک کنه؟

توی گوگل خیلی گشتم و لی متأسفانه هیچی…

[/rtl]

[right][rtl][font="Tahoma"]

راه هایی که به نظر من میاد اما خودم تا به حال امتحان نکردم:

1- از یه ادیتور آماده مثل CKEditor استفاده کنی. البته اون دیگه کد jquery تولید نمیکنه و باید خودت یه فکری براش بکنی (مثلا با یه عبارت منظم بتونی جای مناسب توی کد html پیدا کنی و بعد jquery رو اضافه کنی)

2- خود Yii چیزی به اسم CFrom داره که یک ارایه config میگیره و خودش فرم رو میسازه اینجوری با نوشتن 5 خط کد میتنونی یه فرم مثلا 100 خطی رو تولید کنی مزیت دیگش هم اینه که متونی اون کد jquery رو اضافه کنی به کد html. منتها باید به چیزی شبیه به editor بنویسی که بتونه اون آرایه config رو تولید کنه

اینایی که گفتم فقط پیشنهاده امیدوارم کمک کنه[/font]

[/rtl]

[/right]

[rtl]بنده هم با اون قسمت دوم یعنی CForm موافقم. ولی می خوان فرم به صورت runtime مثلا توسط مدیر تولید بشه و از طرفی اطلاعات ورودی آن را چطور در دیتابیس باید ذخیره کرد. فیلدها کاملا متغییر و در زمان اجرا ایجاد می شوند.

البته باید بگم که یک کلاس php فرم ساز با JQuery پیدا کردم ولی نمی دونم چطوری بیارمش توی Yii، با اکستنشن ها یا ماژولها؟

[/rtl]

[right][rtl]

[font="Tahoma"]همونطور که گفتم CForm یک آرایه config میگیره که شما باید این آرایه رو به صورت runtime بسازید برای این کار هم در حالت ایده آل باید editor بنویسید و یا حداقل یک wizard گام به گام داشته باشید تا کاربر نوع فیلدها، اسمها، برچسبها، مکانها و … رو مشخص کنه

در مورد دیتابیس هم کارهای مختلفی میشه کرد مثلا کل مقادیر فرم بریزی توی یک آرایه php یا json بعد اون آرایه رو به صورت string توی یک ستون از دیتابیس ذخیره کنی یا اینکه از این روش استفاده کنی دیگه خودت ببین با کدوم راحتتری

به نظر من اگر واقعا میخوای همچین چیزی بنویسی بهتره به صورت extension باشه تا کاملا از بقیه ساختار application مستقل باشه شاید هم بعدا تصمیم گرفتی توی سایت share کنی :D[/font]

[/rtl]

[/right]

[rtl]ممنون از راهنمایی و وقتی که گذاشتید. به نظرم برای دیتابیس، راه دوم خیلی بهتر و بهینه تر باشه؟!

[/rtl]