Paradox 3 گزارش دادن ارسال شده در دی 1 سلام شب بخیر من اطلاعات استان و شهر و منطقه رو موقع ثبت نام از کاربر میخام که از طریق ایجکس اطلاعات رو از دیتابیس دریافت میکنم که تا اینجا اکیه حالا میخام تو پنل مدیریت بتونم مناطق شهرهارو غیرفعال یا فعال کنم مثلا اگه شهر تهران انتخاب شد بتونم تمام مناطقش رو فعال و غیرفعال کنم برای این چون با ایجکس هست به مشکل خوردم و نتو نستم انجام بدم الان تمام منطقه هارو نمایش میده چجوری دکمه فعال و غیرفعال رو بزارم که تمام مناطق یک شهر رو در بر بگیره؟ دیتابیس منطقه Schema::create('regions', function (Blueprint $table) { $table->id(); $table->string('name'); $table->tinyInteger('status')->default(1); $table->foreignId('city_id')->constrained()->cascadeOnDelete(); $table->timestamps(); }); روت Route::get('/locations' , [AdminController::class , 'showLocation'])->name('locations'); Route::post('/locations/fetch-cities' , [AdminController::class , 'fetchCity']); Route::post('/locations/fetch-regions' , [AdminController::class , 'fetchRegion']); Route::post('/locations' , [AdminController::class , 'submitLocation'])->name('send.locations'); Route::get('locations/status/{location}', [AdminController::class ,'updatestatus'])->name('location.status'); کنترلر public function showLocation() { $provinces = $data['province'] = Province::get(["name", "id"]); // $regions = Region::get(); return view('admin.locations.location' , compact('provinces')); } public function fetchCity(Request $request) { $data['cities'] = City::where("province_id", $request->province_id) ->get(["name", "id"]); return response()->json($data); } public function fetchRegion(Request $request) { $data['regions'] = Region::where("city_id", $request->city_id) ->get(["name", "id"]); return response()->json($data); } public function submitLocation(Request $request , Region $region) { $request->validate([ 'province' => 'required', 'city' => 'required', 'region' => 'required', ]); if (Region::where('city_id', $request->city)->count() > 0) { if ($request->region[0] == 'status') { $region = Region::where('city_id', $request->city)->get(); } else { alert("لطفا یک گزینه را انتخاب کنید"); } } else { return redirect(route('locations')); } return redirect(route('locations')); } public function updatestatus(Region $region) { if ($region->status == 1) { $region->status = 0; } else { $region->status = 1; } $region->save(); alert()->success('به روز رسانی با موفقیت انجام شد' , 'با تشکر'); return redirect(route('regions')); } ایجکس $(document).ready(function () { $('#province-dropdown').on('change', function () { var idProvince = this.value; $("#city-dropdown").html(''); $.ajax({ url: "{{url('admin/locations/fetch-cities')}}", type: "POST", data: { province_id: idProvince, _token: '{{csrf_token()}}' }, dataType: 'json', success: function (result) { $('#city-dropdown').html('<option value=""> انتخاب شهر </option>'); $.each(result.cities, function (key, value) { $("#city-dropdown").append('<option value="' + value .id + '">' + value.name + '</option>'); }); $('#region-dropdown').html('<option value="">انتخاب منطقه</option>'); } }); }); $('#city-dropdown').on('change', function () { var idCity = this.value; $("#region-dropdown").html(''); $.ajax({ url: "{{url('admin/locations/fetch-regions')}}", type: "POST", data: { city_id: idCity, _token: '{{csrf_token()}}' }, dataType: 'json', success: function (res) { $('#region-dropdown').html('<option value="status">غیرفعال</option>'); $.each(res.regions, function (key, value) { $("#region-dropdown").append('<option value="' + value .id + '">' + value.name + '</option>'); }); } }); }); }); نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در دی 1 معمولا برای اینکه آیتمی رو فعال یا غیرفعال کنن دو جا میشه اینکار رو انجام داد یکی در بخشی که خود آیتم ساخته شده از اونقسمت خیلی راحت میتونید یه فیلد وضعیت بذارید و فعال یا غیرفعال بودن رو انتخاب کنید تا موقع ذخیره اعمال بشه و یا در لیست مناطق که نمایش داده میشه میتونید مثلا فیلتر کنید و فقط مناطق تهران رو نمایش بدید و کنار هر منطقه یه چک باکس باشه که هر کدوم رو خواستید تیک بزنید و دو تا دکمه فعال و غیرفعال هم داشته باشید که روی هر کدوم کلیک شد مناطق انتخاب شده رو با ajax به api مورد نظر ارسال کنید و وضعیتش رو براساس کلیکی که روی دکمه فعال یا غیرفعال بوده آپدیت کنید. اگه توضیحات بیشتری نیاز داشتید بگید بیشتر راهنمایی کنم نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در دی 1 در 10 ساعت قبل، saber گفته است : معمولا برای اینکه آیتمی رو فعال یا غیرفعال کنن دو جا میشه اینکار رو انجام داد یکی در بخشی که خود آیتم ساخته شده از اونقسمت خیلی راحت میتونید یه فیلد وضعیت بذارید و فعال یا غیرفعال بودن رو انتخاب کنید تا موقع ذخیره اعمال بشه و یا در لیست مناطق که نمایش داده میشه میتونید مثلا فیلتر کنید و فقط مناطق تهران رو نمایش بدید و کنار هر منطقه یه چک باکس باشه که هر کدوم رو خواستید تیک بزنید و دو تا دکمه فعال و غیرفعال هم داشته باشید که روی هر کدوم کلیک شد مناطق انتخاب شده رو با ajax به api مورد نظر ارسال کنید و وضعیتش رو براساس کلیکی که روی دکمه فعال یا غیرفعال بوده آپدیت کنید. اگه توضیحات بیشتری نیاز داشتید بگید بیشتر راهنمایی کنم الان من تو جدول منطقه فیلد ststus گذاشتم به این شکل میشه فعال و غیرفعال کرد ؟ که مثلا استان تو پنل مدیریتی انتخاب کنم بعد شهر رو از طریق همون ایجکس اطلاعاتش بگیرم و انتخاب کنم بعد انتخاب شهر برای منطقه گزینه فعال و غیرفعال فقط نمایش بده ؟؟ اگه میشه اینجوری لطفا راهنمایی کنید به چه صورت هست ممنون نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در دی 1 بله جدول منطقه باید فیلد status رو داشته باشه که بتونید فعال یا غیرفعال کنید شما توی صفحه دو تا دکمه فعال و غیرفعال باید داشته باشید بعد شهر که انتخاب شد و لیست مناطق رو دریافت کردید به حالت لیست نمایش بدید و حالا به یه روشی مثل رنگبندی متفاوت فعال یا غیرفعال بودن هر منطقه رو هم مشخص کنید. لیست مناطق رو هم که نمایش میدید در کنار اسم هر منطقه یک input از نوع checkbox قرار بدید و value رو برابر با شناسه منطقه جاری قرار بدید بعد هر کدوم از مناطق رو که خواستید فعال یا غیرفعال کنید میتونید تیک بزنید و دکمه مورد نظر حال فعال یا غیرفعال رو کلیک کنید و عملیات مورد نظرتون رو انجام بدید نقل قول Share this post Link to post Share on other sites