Django get selected item from dropdown

Bu yazımızda Django'da JQuery Ajax metodu ile dropdown(html'de select)'dan seçili veriyi kullanmayı öğreneceğiz.

In this post we will learn how to use selected item in dropdown with JQuery Ajax method in Django Framework. Let's look at the html file.


dropdown.html

<script> taglari arasında bulunan jquery ajax metodumuza bakalım. dropdown'a bir id atadık bunu dropdown'ın tetiklenmesi için kullanacağız. on methodunda change işlemi olursa yani dropdownda herhangi bir seçme işlemi olursa bu method tetiklenir. Dolayısı ile ajax için hazırlanırız. Ajax methodu formatı gereği gidilecek bir url vermeliyiz, boş bırakınca aynı sayfa (yani polls/dropdown ) olarak alır.  data göndereceğimiz verileri ifade eder. Burada ben selected_value anahtarı(key) ile  $(this).val( ) yani seçilen item'ı değer(value) olarak gitmek istediğim url'e gönderiyorum.
type GET veya POST değerleri alır. success de bize gittiğimiz url'den dönen data(cevap, result.. ne ise )yı kullanmamız için olanak sağlar.

Şimdi urls.py içinde     url(r'^dropdown',views.dropdown, name='dropdown'), koduna bakalım. Bu satır bize diyor ki polls uygulaması altında dropdown url'i çağrıldığında(polls/dropdown) views.py içinde dropdown metodu var ona git. Gidelim bakalım:  sayfaya ilk gittiğimizde çalışacak satır :  return render(request, 'polls/dropdown.html')  dır. Çünkü herhangi bir ajax methodunu çağırma yapmadık. Bu satır bize templates/ altındaki dropdown.html sayfasını yükler. Eğer herhangi bir ajax methodu çağırma varsa da ajax methodundan gönderdiğimiz selected_value değerini yani seçili olan değeri alıp terminale yazıyoruz. Ek olarak bir cevap döneceğiz ya bu cevabı json formatında dönüyoruz. Ben dönen mesajı özelleştirdim test amaçlı. Siz hangi bilgi işinize yarayacaksa kullanırsınız.

Şimdi biz durup dururken bunu niye yaptık diye sorabilirsiniz. Bunu şöyle kullanabiliriz: Eğer bir açılır menü (dropdown)'nün tetiklenerek sayfada başka işlemler yapmak istiyorsanız bunu kullanabilirsiniz. Örneğin bir eleman seçtiniz yeni bir menü daha açabilirsiniz. 
Ülke->Şehir-> İlçe vs. gibi. Ya da seçilen elemana göre database'e ekleme yapabilirsiniz. Ya da seçilen elemana göre dinamik formlar oluşturabilirsiniz.

views.py and urls.py

Şuraya da bir ekran görüntüsü bırakalım:




Yorumlar