İçeriğe geç

Laravel Dinamik Selectbox Yapımı

Merhabalar, bu yazımda Laravel Dinamik Selectbox Yapımından bahsedeceğim. Ajax kullanarak yaptığımız bu çalışmayı öncelikle kendi projem için uzun uğraşlar sonucu buldum ve çalışır vaziyette faaliyete geçirdim. Kullanımı oldukça basit.

İlk olarak veritabanımız içerisinde iki adet tablo oluşturalım.

  1. İl
  2. İlçe

adında oluşturmamız yeterli olacaktır. Oluşturduğumuz tablolar için sütunlar ekleyeceğiz.

  1. İl tablosu için id ve başlık sütunu
  2. İlçe tablosu için ise kategori ve başlık sütunu

Gerekli sütunları oluşturduktan sonra önce Model sonra ise Controller oluşturmamız gerekecektir. Model dosyamızı oluşturmak için cmd yardımıyla

php artisan make:model Il
php artisan make:model Ilce

sırasıyla yazalım. Daha sonra ...\app içerisinde model dosyalarımız oluşacaktır. Oluşturduğumuz il model dosyasının içine

 protected $table = 'il';

ilçe model dosyasının içine ise

 protected $table = 'ilce';

yazalım. Daha sonra ise controller oluşturmaya geçelim. Bunun için( Laravel Controllers Kullanımı yazısını okumanızı tavsiye ederim) öncelikle cmd yardımıyla aşağıdaki sizlerle paylaştığımız kodu çalıştırıyoruz.

php artisan make:controller TayfunController --resource

...\app\Http\Controllers adresi içerisinde TayfunController adında php dosyamız oluşacaktır. Controller dosyamızın içerisine girelim ve aşağıda verdiğim kodları yapıştıralım.

    public function index(){
     $il = Il::all();
     return view('index', compact('il')
    }
    public function regencies(){
      $il_id = Input::get('id');
      $regencies = Ilce::where('kategori', '=', $il_id)->get();
      return response()->json($regencies);
    }

Ekledikten sonra

namespace App\Http\Controllers;

kısmının altına ise

use App\Il; 
use App\Ilce;

kodlarını ekleyelim. Model ve Controller dosyalarında işimiz bitti. Şimdi rota oluşturmak için \routes\web.php dosyamızı açıyoruz.

Route::get('/', 'TayfunController@index');
Route::get('/json-regencies','TayfunController@regencies');

kodlarını ekledikten sonra göstermek istediğimiz yere select kodlarımızı ve script kodlarımızı eklememiz kaldı.

<form method="get">
<div class="form-group">
<select class="form-control" name="il" id="provinces">
<option value="0" disable="true" selected="true">İl</option>
@foreach ($il as $key => $value)
<option value="{{ $value->id }}">{{ $value->baslik }}</option>
@endforeach
</select>
</div>

<div class="form-group">
<select class="form-control" name="ilce" id="regencies">
<option value="0" disable="true" selected="true">İl Seçiniz</option>
</select>
</div>

</form>

——————————–

<script type="text/javascript">
$('#provinces').on('change', function(e){
console.log(e);
var id = e.target.value;
$.get('/json-regencies?id=' + id,function(data) {
console.log(data);
$('#regencies').empty();
$('#regencies').append('<option value="0" disable="true" selected="true">Seçim yapınız</option>');

$.each(data, function(index, regenciesObj){
$('#regencies').append('<option value="'+ regenciesObj.kategori +'">'+ regenciesObj.baslik +'</option>');
})
});
});</script>
Tarih:LaravelPhp

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir