PHP:AJAX:jQuery: Chained Select – İl & İlçe Seçimi

Web geliştiriciler için küçük ama kafa ağrıtan bu uygulamayı kısaca paketleyip demo atmak istedim.  Lazım olduğunda bakmak üzere elimizin altında dursun.

Ajax methoduyla dinamik il ilçe seçimi için öncelikle Türkiye İl ve İlçe veritabanına ihtiyacımız var (Uygulama için hazırladığım download paketinde bulabilirsiniz).

52 thoughts on “PHP:AJAX:jQuery: Chained Select – İl & İlçe Seçimi

  • Geri bildirim: Anonim
  • localhostta deniyorum fakat illeri listelemiyor. neden olabilir acaba

  • üstad eline sağlık, senin yaptıgın mantıkla bolge tablosu oluşturup bribirine bagladım. 3 lü kolan halinde kullanıyorum bir projemde. derdime derman oldun. sağol

  • il listesi boş geliyor sanırım database e bağlanamıyor yada başka birşey var. Benim ilaveten bir setup yapmam gerekiyor muydu. Sql dosyasını yükledim. db ismini mysql.php sayfasına girdim.

  • localhostta çalışmamasının nedeni sanıyorum jquery dosyasını include ederken bu google üzerinden include ediyor sen o bölümde kendi serverine jquery indirip orayı adres gösterirsen sorun çözülür.

  • Güncelleme sayfası yaptığımızda illeri veri tabanından çağırma işini nasıl yapabiliriz?

  • @selcuk;

    smtr.php 10 satırda. $list='{“0″:”İlçe Seçiniz”,’; yerine $list='{“selected”:”440″,’; yazarsan, Muratpaşa default seçili olur.

    alternatif olarak;

    $(“#ilce”).remoteChained(“#il”, “smtr.php?il_id=7”); // seklinde parametre gonderebilirsin

    $_GET[‘il_id’] değerine göre de, sql işlemlerinde keyfine göre modare edebilirsin.

  • @Atilla hocam,

    dediğiniz yöntemi uyguladım fakat hala değişmiyor. İlçe seçim box boş çıkıyor :/

  • Tamam hallettim. Sayfa ilk açıldığında il seçeneği boş geldiğinden ilçe de boş çıkıyor. Default bir il seçince ilçe de doldu. Kaynak için teşekkürler.

  • Bu sistemi İl – İlce – Semt Olarak 3 lü Kullanmak İstersek Javascript dosyasını nasıl yapmamız gerekir Yardımcı Olurmusunuz…

  • Eline sağlık hoş bi yazı olmuş 🙂 bi sıkıntım var ben bunu select ile illeri yazdıracağım ama farklı bi div içerisinde ilçeleri yazdıracağım mümkün mü ?

  • sanırım yanlış anlaşılmış ilçelerin select’ini farklı bi div içerisine değil ilçeleri farklı bi div şeklinde yazdıracağım select yerine örn: Beyoğlu Düzenle
    linkleri örnek verdim yani ilçelerin yerine marka model ilişkisi ve aracın özelliklerini panel üzerinde düzenleyebilme imkanı verecek

  • selectchained.js dosyasındaki javascript kodlarını güncellemen gerekecek. Filtrelenen sonuçları select içinde “option” elementlerini Append ederek gönderiyor. O yüzden kod yapısını biraz değiştirmen gerekiyor.

  • kardeş teşekkürler, önizlemede 4 lü yapmışşın scripte ise 2li, ama cozduk mantıgı 10 lu da yapabiliyoruz,
    Eline, emeğine sağlık..

    bu arada sistemi cogaltmak için js de değişiklik yapmaya gerek yok sadece html ve php de bitiyo olay tabi, databaseyide unutmayalım,

  • Paylaşım için teşekkürler.

    Ben bu yöntemi Ülkeler ve Şehirler olarak kullandım bununla ilgili kendi veri tabanım var. Ancak bende şehirler id ve alfabetik olarak paralel bir şekilde gitmiyor. Örneğin İstanbul şehrinin ID değeri 15 İzmir şehrinin ID değeri 9 bu şekilde karışık olarak ilerliyor. Paylaşımınız sıralamayı ID sırasına göre küçükten büyüğe doğru yapıyor. Mysql sorgulamada sıralamayı (ORDER BY) her ne kadar değiştirsem de yinede ID sırasına göre yapıyor. Buda şehirlerin karışık bir şekilde gelmesine sebep oluyor. Şehir isimlerine göre alfabetik sıralamayı nasıl yapabiliriz?

  • Daha kolay bir yöntemi var mı bilmiyorum ama şöyle bir şey buldum smtr.php’de:

    while($ilr=mysql_fetch_array($dk)){
    $list.='”‘.$ilr[‘id’].'”:”‘.$ilr[‘sehir’].'”,’;
    }

    kısmını

    while($ilr=mysql_fetch_array($dk)){
    $list.='”‘.$ilr[‘sehir’].’_’.$ilr[‘id’].'”:”‘.$ilr[‘sehir’].'”,’;
    }

    olarak değiştirdim böylece php post edilen ‘sehir_id’ kısmı Istanbul_15 olarak gelicek explode ile alt tire (_) baz alınarak bölenecek numara olan kısmı ile işlem yapılacak. Bu yöntemle alfabetik A-Z olarak sıralayabildim.

  • @Atilla bey ilk mesajımda da dediğim gibi olmuyor list’teki en başta olan id numarasına göre sıralıyor deneyebilirsiniz bunun mysql sorgulamadan değil JS ile ilgili olduğunu düşünüyorum.

    Teşekkürler.

  • Teşekkürler yalnız demodaki veri tabanında yazılımda mahalle semt de var , onuda paylaşırmısınız ?

  • meraba, bişey sormak istiyorum örneğin istanbul ilini seçtık sonra şişli ilçesini seçtik ben istiyorum ki şişli ye seçince orada ki ürünler çıksın yani link vermek istiyorum ilçelere ayrı ayrı nasıl yapabilirim

  • hocam demodaki 4 gibi 4 bölüm olarak indirebilirmiyiz. indirdiimiz demoda il ilçe seçiliyor sadece

  • Ya anlamadıgım bir şekilde selectboxların içi boş geliyor. Kendi makinemde wamp kullanarak Localhostta çalıştırıyorum. Herşey okey ama selectboxların için boş. Yardımınıza ihtiyacım nerde hata yapıyorum.

  • üstad bu kodu nereye yazıcaz bulamadım
    $(“#ilce”).remoteChained(“#il”, “smtr.php?il_id=7″);

  • üstad ellerine sağlık ama 2 gündür bişey yapmaya çalışıyorum olmadı. Yapmaya çalıştığım şu veri tabanından il ve ilçeleri çektikten sonra bayi o ile ve ilçeye ait abonelerin listelenmesini istiyorum. Bu kısıma kadar sıkıntı yok yapıyorum. Sıkıntı şurda aramayı sadece ili seçerek, yani örneğin istanbul ilini seçip ilçeyi seçmediğinde tüm istanbuldaki aboneleri görebilmesi için bir buton ekledim butona basınca listeyi ekrana getiriyo ama gene aynı butonu kullanarak örneğin ili istanbul ilçeyi bakırköy yapıp ara butonuna basınca ilçi sekmesindeki bakırköyün kalmassına istiyorum. yani seçilen ilçeyi selected olarak ayarlamak istiyorum. Yani arama ve listelemede sıkıntı yok sıkıntı seçimdeki ilçe kısmının selected olarak atayamıyorum. Bunuda sanırım yukarıda bahsettiğin $(“#ilce”).remoteChained(“#il”, “smtr.php?il_id=7″); kodla yapabilirim ama bunu nerede kullanmalıyım. Lütfen acil yardım 2 gün aynı şeyle uğraşınca sıyırıyo insan… Yada başka kolayı varmı.

  • üstad kodu nereye ekliyceğimi bi türlü bulamıyorum, yani benim index.php den smtr.php ye id yollamam lazım ki bu isteğim olusun onuda formun altına eklesem gene olmuyo, çalışmayı sana mail attım sana zahmet şu 1 satırlık kod nereye eklenecekse bi yardımcı olsan. oradaki bayi ara butonuna bastığında seçili ilçenin selected olması lazım sadece başka sıkıntı yok….

  • Hocam öncelikle bu güzel paylaşımınız için teşekkür ederim baya işime yaradı. Ben bunu ilan sitemde kullanıyorum. İlan verirken ilanın adres bilgilerini bu uygulama ile alıyorum. Yeni ilan verirken hiç bir sıkıntım yok. tertemiz çalışıyor ama verilen ilanı güncellemek istediğimde select optionların içinde daha önceden veritabanına kaydedilmiş il ilçe semt mahalle bilgilerini çekiyorum. Fakat js kodunda bulunan $(“option”, self).remove(); kodu yüzünden veritabanımdan çektiğim bu bilgiler gözükmüyor. js dosyasından bu kodu kaldırdığımda çekilen veriler gözüküyor ama bu seferde il seçimi yaptığımda örneğin; Ankara’yı seçtikten sonra istanbul’u seçersem Ankara’nın ilçeleri silinmiyor ve üstüne İstanbulun ilçeleri ekleniyor. Bunun için js dosyasında ne gibi bir değişiklik yapabiliriz hocam şimdiden teşekkürler iyi çalışmalar.

  • @halil, bir çok arkadaş bu konuda yardım istedi. Güncelleme ekranı için bi demo daha hazırlayıp yeni makale açacağım. Biraz sabır rica ediyorum.

  • Merhaba kaçgündür arıyorum bulamadım tek sizin sitenizde buldum fakat inmiyor lütfen linkleri yenileyebilirmisiniz çok önemli

  • üstad şimdi bu şekilde veri tabanına id değerini yazıyor “” id yerine il adını nasıl yazdıra bilirim

  • Emeğinize yüreğinize sağlık… Akın kardeş ALLAH razı olsun senden de sayende sıralama olayınıda çözdük 🙂

  • Dostum eline sağlık bişey sormak istiyorum il ilçeye göre sayfa çağırmayı nasıl yapabiliriz.

    örn: istanbul / ataşehir / yenisahra dedi seçti siteadı.com/yenisahra.html açılsın gibi yardımcı olursan çok memnun olurum.

  • Geri bildirim: Anonim

Bir Cevap Yazın

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