Javascript kısmındaki "districts" dizisini veritabanı kullanarak doldurabilirsiniz, tamamen dinamik kullanılacak biçimde hazırladım şehir, ilçe ve bağlantı belirlemek tamamen size kalmış.
Örnek format:
var districts = {
ŞEHİRID: "İLÇE ADI|İLÇEID|İLÇE BAĞLANTI, İLÇE ADI|İLÇEID|İLÇE BAĞLANTI"
};Her virgül yeni bir ilçeyi belirtir, her | işareti mevcut ilçe için atanacak verileri belirtir.
Şehirlerin option'ları veritabanından çekilirken value kısmına şehrin ID'si girilmelidir.
JQuery Gerektirir
$(document).ready(function () {
//34 ve 06 ID'li şehirlere 2 'şer ilçe eklendi
var districts = {
'34': "Uskudar|341|uskudar.html,Umraniye|342|umraniye.html",
'06': "Mamak|061|mamak.html,Sincan|062|sincan.html"
};
function explodeDistrictItems(string, type) {
return string.split("|");
//İlçe verilerini parçaladık;
//0=İlçe adı
//1=İlçe ID
//2=İlçe bağlantı
}
//Şehir seçilmesi/değiştirilmesi durumunda
$("#sehir").change(function () {
$("#link").empty(); //Linkleri sıfırladık
$("#district").empty(); //İlçeleri sıfırladık
let district = districts[$(this).val()].split(","); //İlçeleri ',' işaretine göre topladık, İstanbul seçilmesi durumunda artık district[0]=üsküdar olacaktır
$("#district").append( '<option selected hidden>Lütfen ilçe seçiniz...</option>'); //İlçe listemizi sıfırladık
$.each(district, function (i, val) { //Verilerimizi döngüye aldık ve ilçeleri yazdırdık
$("#district").append(
'<option value="' +
explodeDistrictItems(val)[1] +
'" data-link="'+explodeDistrictItems(val)[2]+'">' +
explodeDistrictItems(val)[0] +
"</option>"
);
});
});
//İlçe seçilmesi/değiştirilmesi durumunda
$("#district").change(function () {
$("#link").empty(); //Linkleri sıfırladık
$("#link").append('<a href="/'+$('option:selected', this).attr('data-link')+'">'+$('option:selected', this).text()+'</a>'); //Linkimizi verdik
});
});