محمد نمازی
5 سال پیش توسط محمد نمازی مطرح شد
10 پاسخ

مشکل در دریافت استان و شهرستان

باسلام
استان و شهرستان رو ذخیره کردم، اما موقع ویرایش چطوری میتونم شهرستان انتخاب شده و ذخیره شده در دیتابیس رو نشون بدم ؟

کد ویو :

@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

ثبت پرسش جدید
coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
1
<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>

تست نکردم، به این شکل ببینید اوکیه


Mohammad Amin Mokhtari
تخصص : برنامه نویس
@amin.mokhtari94 5 سال پیش مطرح شد
1

سلام
این کد رو برای اسکریپتتون امتحان کنید:

@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

محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

@amin.mokhtari94

ممنونم اما مشکل حل نشد
یه مشکل دیگه هم داره اینکه اگر این مشکلنمایش شهرستان حل بشه، دیگر نمیتوان استان رو تغییر داد یعنی اگر تغییر بدیم، شهرستان دیگه تغییر نمیکنه.


محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

کسی نیست این موضوع رو حل و فصل کنه !!!!


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
1
<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);
                    });
                }
            });
        }

بررسی کنید ببینید به درد میخوره


محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

@coaradsupp

تست کردم اوکی نشد
ممنون میشم اگه تغییراتی نیاز داره انجام بدید.

کد ویو :

<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>

coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
1
<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>

تست نکردم، به این شکل ببینید اوکیه


محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

@coaradsupp

از این خط ارور میگیره :

{{$user->city->id}}

ارور :

Trying to get property 'id' of non-object

coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
1

ای دی شهری که واسه یوزر هست رو بذارید،

احتمالا همون

$user->city

هست که بود، من اشتباه گذاشتم


محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

@coaradsupp

مشکلش عین مشکل قبل تر هست یعنی استان رو انتخاب کرده اما شهرستان رو نه، و فقط اولین مورد که نوشته "شهرستان خود را انتخاب نمایید" انتخاب شده.
یه مشکل دیگه هم داره اینکه اگه روی هر استان کلیک کنی، برای شهرستان هیچ اتفاقی نمی افته و لیست خالی هست.


محمد نمازی
تخصص : توسعه دهنده وب
@mnamazi 5 سال پیش مطرح شد
0

بیزحمت یه نفر این رشته بحث رو مطالعه کنه تا مشکلم حل بشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام