باسلام
استان و شهرستان رو ذخیره کردم، اما موقع ویرایش چطوری میتونم شهرستان انتخاب شده و ذخیره شده در دیتابیس رو نشون بدم ؟
کد ویو :
@section('script')
<script type="text/javascript">
$(document).ready(function () {
$('select[name="province"]').on('change', function () {
var provinceID = $(this).val();
if (provinceID) {
$.ajax({
url: '/panel/management/get-city-list/' + encodeURI(provinceID),
type: "GET",
dataType: "json",
success: function (data) {
$("city").empty();
$.each(data, function (key, value) {
$("city").append('<option value="' + value.id + '" {{ $user->province == $province->id ? 'selected' : '' }}>' + value.name + '</option>');
});
}
});
} else {
$("city").empty();
}
});
});
</script>
@stop
@section('content')
<div class="row">
<div class="col-xl-6">
<div class="form-group">
<label for="province">استان :</label>
<select name="province" id="province" class="form-control">
<option value="">استان خود را انتخاب نمایید</option>
@foreach ($provinces as $province)
<option
value="{{ $province->id }}" {{ $user->province == $province->id ? 'selected' : '' }}>{{ $province->name }}</option>
@endforeach
</select>
@error('province')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
<div class="col-xl-6">
<div class="form-group">
<label for="city">شهرستان :</label>
<select name="city" id="city" class="form-control">
<option value="">شهرستان خود را انتخاب نمایید</option>
</select>
@error('city')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
</div>
@stop
<div class="row">
<div class="col-xl-6">
<div class="form-group">
<label for="province">استان :</label>
<select name="province" id="province" class="form-control">
<option value="">استان خود را انتخاب نمایید</option>
@foreach ($provinces as $province)
<option value="{{ $province->id }}" {{ $user->province == $province->id ? 'selected' : '' }}>{{ $province->name }}</option>
@endforeach
</select>
@error('province')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
<div class="col-xl-6">
<div class="form-group">
<label for="city">شهرستان :</label>
<select name="city" id="city" class="form-control" data-old-id="{{$user->city->id}}">
<option value="">شهرستان خود را انتخاب نمایید</option>
</select>
@error('city')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
</div>
<script type="text/javascript">
function load_cities() {
let provinceID = $('#province').val();
if (provinceID === null) {
id = $('#province').eq(0).val();
}
if (provinceID) {
$.ajax({
url: '/panel/management/get-city-list/' + encodeURI(provinceID),
type: "GET",
dataType: "json",
success: function (data) {
$("#city").empty();
$.each(data, function (key, value) {
let selected = null;
if ($('#city').data('old-id') && value.id == $('#city').data('old-id')) {
selected = 'selected';
}
let optionTag = `<option value="` + value.id + `" ` + selected + `>` + value.name + `</option>`;
$('#city').append(optionTag);
});
}
});
} else {
$("city").empty();
}
}
</script>
تست نکردم، به این شکل ببینید اوکیه
سلام
این کد رو برای اسکریپتتون امتحان کنید:
@section('script')
<script type="text/javascript">
$(document).ready(function () {
load_cities({{$user->city}});
$('select[name="province"]').on('change', load_cities());
});
function load_cities(current_city=false) {
var provinceID = $('select[name="province"]').val();
if (provinceID) {
$.ajax({
url: '/panel/management/get-city-list/' + encodeURI(provinceID),
type: "GET",
dataType: "json",
success: function (data) {
$("city").empty();
$.each(data, function (key, value) {
if(current_cit !== false && value.id == current_city) {
$("city").append('<option value="' + value.id + '" selected >' + value.name + '</option>');
}else {
$("city").append('<option value="' + value.id + '" >' + value.name + '</option>');
}
});
}
});
} else {
$("city").empty();
}
}
</script>
@stop
ممنونم اما مشکل حل نشد
یه مشکل دیگه هم داره اینکه اگر این مشکلنمایش شهرستان حل بشه، دیگر نمیتوان استان رو تغییر داد یعنی اگر تغییر بدیم، شهرستان دیگه تغییر نمیکنه.
<div class="col-md-12 col-xs-12">
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="form-group has-feedback">
<label>استان:</label>
<select class="form-control states" name="state_id" required onchange="getCities(this)">
@foreach($states as $state)
<option value="{{$state->id}}" {{old('state_id') == $state->id ? 'selected' : ''}}>{{$state->name}}</option>
@endforeach
</select>
<span class="glyphicon glyphicon-pushpin form-control-feedback"></span>
</div>
</div>
<div class="col-md-6 col-xs-12">
<div class="form-group has-feedback">
<label>شهر:</label>
<select class="form-control cities" name="city_id" data-old-id="{{old('city_id')}}" required></select>
<span class="glyphicon glyphicon-pushpin form-control-feedback"></span>
</div>
</div>
</div>
</div>
getCities();
function getCities(tag = null) {
let id = $('.states').val();
if (id === null) {
id = $('.states').eq(0).val();
}
let url = '{{route('city')}}/' + id;
$.get(url, function (response) {
if (response.code) {
$('.cities').html('');
$.each(response.data, function (index, item) {
let selected = null;
if ($('.cities').data('old-id') && item.id == $('.cities').data('old-id')) {
selected = 'selected';
}
let optionTag = `<option value="` + item.id + `" ` + selected + `>` + item.name + `</option>`;
$('.cities').append(optionTag);
});
}
});
}
بررسی کنید ببینید به درد میخوره
تست کردم اوکی نشد
ممنون میشم اگه تغییراتی نیاز داره انجام بدید.
کد ویو :
<div class="row">
<div class="col-xl-6">
<div class="form-group">
<label for="province">استان :</label>
<select name="province" id="province" class="form-control">
<option value="">استان خود را انتخاب نمایید</option>
@foreach ($provinces as $province)
<option value="{{ $province->id }}" {{ $user->province == $province->id ? 'selected' : '' }}>{{ $province->name }}</option>
@endforeach
</select>
@error('province')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
<div class="col-xl-6">
<div class="form-group">
<label for="city">شهرستان :</label>
<select name="city" id="city" class="form-control">
<option value="">شهرستان خود را انتخاب نمایید</option>
</select>
@error('city')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
</div>
کد js :
<script type="text/javascript">
$(document).ready(function () {
load_cities({{$user->city}});
$('select[name="province"]').on('change', load_cities());
});
function load_cities(current_city=false) {
var provinceID = $('select[name="province"]').val();
if (provinceID) {
$.ajax({
url: '/panel/management/get-city-list/' + encodeURI(provinceID),
type: "GET",
dataType: "json",
success: function (data) {
$("#city").empty();
$.each(data, function (key, value) {
if(current_city !== false && value.id == current_city) {
$("#city").append('<option value="' + value.id + '" selected >' + value.name + '</option>');
}else {
$("#city").append('<option value="' + value.id + '" >' + value.name + '</option>');
}
});
}
});
} else {
$("city").empty();
}
}
</script>
<div class="row">
<div class="col-xl-6">
<div class="form-group">
<label for="province">استان :</label>
<select name="province" id="province" class="form-control">
<option value="">استان خود را انتخاب نمایید</option>
@foreach ($provinces as $province)
<option value="{{ $province->id }}" {{ $user->province == $province->id ? 'selected' : '' }}>{{ $province->name }}</option>
@endforeach
</select>
@error('province')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
<div class="col-xl-6">
<div class="form-group">
<label for="city">شهرستان :</label>
<select name="city" id="city" class="form-control" data-old-id="{{$user->city->id}}">
<option value="">شهرستان خود را انتخاب نمایید</option>
</select>
@error('city')
<div class="invalid-feedback"> {{ $message }}</div>
@enderror
</div>
</div>
</div>
<script type="text/javascript">
function load_cities() {
let provinceID = $('#province').val();
if (provinceID === null) {
id = $('#province').eq(0).val();
}
if (provinceID) {
$.ajax({
url: '/panel/management/get-city-list/' + encodeURI(provinceID),
type: "GET",
dataType: "json",
success: function (data) {
$("#city").empty();
$.each(data, function (key, value) {
let selected = null;
if ($('#city').data('old-id') && value.id == $('#city').data('old-id')) {
selected = 'selected';
}
let optionTag = `<option value="` + value.id + `" ` + selected + `>` + value.name + `</option>`;
$('#city').append(optionTag);
});
}
});
} else {
$("city").empty();
}
}
</script>
تست نکردم، به این شکل ببینید اوکیه
از این خط ارور میگیره :
{{$user->city->id}}
ارور :
Trying to get property 'id' of non-object
ای دی شهری که واسه یوزر هست رو بذارید،
احتمالا همون
$user->city
هست که بود، من اشتباه گذاشتم
مشکلش عین مشکل قبل تر هست یعنی استان رو انتخاب کرده اما شهرستان رو نه، و فقط اولین مورد که نوشته "شهرستان خود را انتخاب نمایید" انتخاب شده.
یه مشکل دیگه هم داره اینکه اگه روی هر استان کلیک کنی، برای شهرستان هیچ اتفاقی نمی افته و لیست خالی هست.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟