sql >> データベース >  >> RDS >> Mysql

Laravelの動的ドロップダウンの国と州

    Laravelで動的ドロップダウンを実行する方法は次のとおりです:

    免責事項:これはテストしていませんが、機能するはずです。コメントしてください。更新します🙏

    app / Http / Controllers / HomeController.php

    <?php
    
    namespace App\Http\Controllers;
    
    use App\{Country, State};
    
    class HomeController extends Controller
    {
        public function index()
        {
            return view('home', [
                'countries' => Country::all(),
                'states' => State::all(),
            ]);
        }
    }
    

    resources / views / home.blade.php

    <select name="country">
        @foreach ($countries as $country)
            <option value="{{ $country->id }}">{{ $country->name }}</option>
        @endforeach
    </select>
    
    <select name=“state”>
        @foreach ($states as $state)
            <option value="{{ $state->id }}">{{ $state->name }}</option>
        @endforeach
    </select>
    
    <script>
        $(function() {
            $('select[name=country]').change(function() {
    
                var url = '{{ url('country') }}' + $(this).val() + '/states/';
    
                $.get(url, function(data) {
                    var select = $('form select[name= state]');
    
                    select.empty();
    
                    $.each(data,function(key, value) {
                        select.append('<option value=' + value.id + '>' + value.name + '</option>');
                    });
                });
            });
        });
    </script>
    

    app / Country.php

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Country extends Model
    {   
        public function states()
        {
            return $this->hasMany('App\State');
        }
    

    app / State.php

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    Class State extends Model
    {   
        public function country()
        {
            return $this->belongsTo('App\Country');
        }
    

    routers / web.php

    Route::get('country/{country}/states', '[email protected]');
    

    app / Http / Controllers / CountryController.php

    <?php
    
    namespace App\Http\Controllers;
    
    use App\Country;
    
    class CountryController extends Controller
    {
        public function getStates(Country $country)
        {
            return $country->states()->select('id', 'name')->get();
        }
    }
    


    1. MySQLフィールドにcsvを保存する–悪い考えですか?

    2. android生体認証USB指紋認証チュートリアル

    3. mysql外部キー制約が誤って形成されたエラー

    4. ファイルまたはアセンブリを読み込めませんでした'MySql.Data、Version =6.3.6.0