ویرایش فرمی که توسط ajax در لاراول ایجاد میشه

- 1 سال پیش
توسط ابوالفضل ویسی آپدیت شد
مرتضی زارعی زکلیکی ( 185 تجربه )
1 سال پیش
تخصص : توسعه دهنده سمت سرور

سلام
خوب هستین؟
در لاراول با استفاده از ajax ، عناصر فرمی رو ایجاد می کنم مثلاً با وارد کردن یک متن در textbox ، در کنارش یک textbox جدیدی ساخته میشه (توسط ajax) ، تا اینجا مشکلی ندارم مشکل از اونجا بوجود میاد که بعد از ثبت اطلاعات و ذخیره در دیتابیس ، برای ویرایش کردن فرم باید دوباره از اول مراحل طی بشه که در اینصورت کاربر دچار مشکل و سردرگمی میشه .(اینو هم بگم که دارم روی اولین پروژم کار می کنم که خودم تعریفش کردم)
مانند :
بعضی از عناصر فرم مثلاً عنوان و توضیحات خوب ثابت هستند و میشه با

$model->title or old('title')

برگردوند اما چون عناصر جدید فرم توسط ajax ساخته می شن ، نمیشه اینجوری در laravel برگردوند

بنظرشما چجوری می تونم اینو درستش کنم ؟
خیلی ممنون

ابوالفضل ویسی ( 750 تجربه )
1 سال پیش
تخصص : برنامه نویس بک اند و فرانت اند

خسته نباشید .
دقیقا متوجه نشدم . چه عناصری توسط ajax ساخته میشه و مگه در دیتابیس ذخیره نمیشه که امکان برگشت توسط لاراول رو نداره ؟
بیشتر توضیح بدید تا شاید بتونیم کمکتون کنیم .

مرتضی زارعی زکلیکی ( 185 تجربه )
1 سال پیش
تخصص : توسعه دهنده سمت سرور

سلام
@vaysi

بنظرم با تصویر بهتر می تونم توضیح بدم

مرحله 1 :

http://s8.picofile.com/file/8331944518/1.jpg

مرحله 2 :

http://s9.picofile.com/file/8331944526/2.jpg

در مرحله 1 وقتی که روی مثلاً لوازم جانبی کلیک میشه ، از طریق ajax ، در مرحله 2 یک select box جدیدی ایجاد میشه و نمایش داده میشه .
خوب برای ذخیره در دیتابیس هیچ مشکلی ندارم اما وقتی می خوام ویرایش کنم ، در صفحه ویرایش فقط مرحله 1 نمایش داده میشه و باید از اول مراحل طی بشه که خوب وقتی کاربر از قبل انتخاب کرده چرا باید دوباره انتخاب کنه .

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

امیدوارم منظورم رو رسونده باشم.
خیلی ممنون

ابوالفضل ویسی ( 750 تجربه )
1 سال پیش
تخصص : برنامه نویس بک اند و فرانت اند

متوجه شدم .
نکته اول : که از نظر بنده توی کالبک ajax به جای اینکه بگید یک selectbox جدید ساخته بشه از قبل یه selectbox بسازید و فقط اون رو مخفی کنید و بعد توی کالبک ajax بگید که آیتم ها رو دریافت کنه و در قالب option به سلکت باکس مورد نظر اضافه کنه .

نکته دوم : اینکه صفحات ساخت و ویرایش رو از هم جدا کنید ( در صورتی که جدا نیستند ) . و بعد به جای اینکه توی صفحه ویرایش دیگه عمل ajax انجام نگیره و همه اطلاعات از قبل لود بشن . مثلا توی متد مربوط به edit اون کنترلرتون باید اطلاعات لوازم جانبی و نوع و هرچیزی که نیاز دارید رو بفرستید به ویو مورد نظر .
برای چک کردنش که ببینید کاربر کدوم رو انتخاب کرده و از قبل سلکت کنید فقط کافیه از همچین کدی استفاده کنید


 @foreach($ExtraTools as $Extratool)
        <option value="{{ $Extratool->id }}" {{ in_array($Extratool->id,$user->inventory->ExtraTools->pluck('name')->toArray()) ? 'selected' : '' }} >{{  $ExtraTool->name }}</option>
 @endforeach  ```
برای ارسال پاسخ باید وارد سایت شوید