سلام دوستان.
من با استاده از دو جدول استان ها و شهرها رو داخل دیتابیس ذخیره کردم.
جدول provinces:
Schema::create('provinces', function (Blueprint $table) {
$table->id();
$table->string('province');
$table->timestamps();
});
جدول cities:
Schema::create('cities', function (Blueprint $table) {
$table->id();
$table->string('city');
$table->foreignId('province_id')->constrained()->onDelete('CASCADE');
$table->timestamps();
});
حالا تو یه فرمی میخوام وقتی داخل سلکت باکس استان ها، اصفهان انتخاب شد، داخل سلکت باکس شهرها لیست شهرهای اصفهان نمایش داده بشه ولی این اتفاق نمیوفته، مشکل از کجاس؟
<div class="form-group row">
<div class="col-lg-6">
<label for="province" class="control-label">استان</label>
<select name="province" class="form-control">
<option value="" disabled selected>لطفا استان خود را انتخاب نمایید</option>
@foreach(\App\Models\Province::all() as $province)
<option value="{{ $province->id }}">{{ $province->name }}</option>
@endforeach
</select>
@error('estate')
<p id="error">{{ $message }}</p>
@enderror
</div>
<div class="col-lg-6">
<label for="city" class="control-label">شهر</label>
<select name="city" class="form-control">
<option value="">select</option>
</select>
@error('city')
<p id="error">{{ $message }}</p>
@enderror
</div>
</div>
کدهای js:
$("document").ready(function () {
$('select[name="province"]').on('change', function (e) {
$.ajax({
url: "{{ route('jobs.create') }}",
type: "GET",
dataType: "json",
success: function (data) {
$('select[name="city"]').empty();
$.each(data, function (key, value) {
$('select[name="city"]').append('<option value=" ' + key + '">' + value + '</option>');
})
}
})
});
});
یکبار خودتون کدهاتون رو با دقت بخونید و به عناوین متغیرها و URL ها دقت کنید!
احساس میکنم صرفا کد رو از یک جای دیگه کپی کردید و هیچ ربطی به این پروژتون نداشته...
مثلا province->name$
استفاده کردید. درحالیکه در دیتابیستون اصلا چنین فیلدی تعریف نکردید.
برای درخواست ajax از url برابر با {{ route('jobs.create') }}
استفاده کردید که ربطی به بحث گرفتن شهرهای یک استان نداره!
برای احترام به وقت خودتون و بقیه، قبل از طرح پرسش اگر مبحثی رو هنوز مسلط نیستید برید سراغ یادگیریش. و اگر آموزش ها رو دیدید و صرفا در یک بخش جزئیش سوال داشتید یا ابهام وجود داشت، وقت بگذارید و سوالتون رو دقیق و حرفه ای مطرح کنید.
هم کار خودتون زودتر راه می افته. هم نفرات بعدی که با مشکل مشابه مواجه میشوند در آینده استفاده میکنند. و هم کلی فواید و برکات دیگه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟