yani;

ülkeler-------iller--------ilçeler

ülke seçince il, il seçince ilçeler listelenecek. google üzerinden bayağı aradım çalışan sonuç çıkaramadım.

 

Öncelikle böylesi bir listeleme eldeki kaynaklarla biraz sorunlu olacaktır çünkü her ülkenin kendine has yönetim kısımları bulunmakta.. Fakat sınırlı sayıda ülkeyle bu işi yapıcaksanız eğer, ya bir Database oluşturarak ya da verileri coğrafik veriler içeren bir siteden çekerek yapabilirsiniz ama bu da profesyonele yakın düzeyde bilgi ve birikim ister... Ben genellikle coğrafik verileri işlerken, ülke kısmını baz alır ve diğer verilerin auto-complete ile doldurulmasını sağlarım ki bana göre en rahat yöntem budur. Fakat illa manuel olarak yapacağım, sayfam statik, istediğim ülkeler belli derseniz:

downloads.mysql.com (ülkeler ve şehirler database)

www.world-gazetteer.com (PHP'de cURL kullanılarak veriler çekilebilir, ülke, şehir, eyalet, subdivisionlar, ormanlar, nehirler v.s.)

www.geonames.org (world gazetteer ile aynı sistem fakat, JSON veya xml destekli veri çekimine izin var)

ÜCRETLİ olarak :www.geodatasource.com

Sir.Fitih

ben ülkeler ve iller bunu örnek olsun diye verdim tamamen farklı bir sitemde kullanıcam ve bunu veritabanı kullanmadan yapmam gerekli, xml olur js olur.

karaden

istediğim anlaşılmamış..

3 tane select box yan yana durucak 1. de seçim olunca 2. listelenecek, 2.de değişim olunca 3. listelenecek.

karaden

istediğin anlaşıldı fakat çok basit birşeymiş gibi algılıyorsun sen bunu..

Select box diyorsun, selectbox'a ülkeleri nasıl koymayı düşünüyorsun ? Ezbere bir ülke listen mi var? Geçtim, diğer selectboxlar birbiri ile ilintili, iller listesinde dünyadaki bütün illeri mi koymak istiyorsun..

Database bazlı olanını detaylı olarak açıkliym yine de amme hizmeti hesabi..

1. Selectbox ülkeler (db'den ülkeleri çekiyorum)
<select id="ulkeler">
<?php foreach(ulkeler as ulke) { ?>
<option value="<?php echo $ulke?>"><?php echo $ulke?></option>
</select>

2. Selectbox iller (cektiğim ülkelere göre liste yapicam)

<select id="iller" onChange="ilsec()";>
<option value="00">Lütfen bir il seçiniz..</option>
</select>

3. bir javascript (ajax ile iller.php'den veri cekicez);

(Burda bir script yazdıydım, satıra sığmadığı için silinmiş)


-- Olayın özü bu, bilene birçok şey ifade ediyor, eğer burdaki anlatımı çözümleyemiyorsanız bu işe hiç bulaşmayın derim.


--Ek olarak sayfa içinde manuel olarak girilmiş (yani database ve php kullanmadan statik bir sayfanın içine gömülmüş) ülkeler, iller, ilçeler verileri minimum 100 mb tutar. XML bazlı olduğunda bi 200mb'yi bulur sanırım.

Sir.Fitih

o da zor ama jquery ile şöyle kabataslak:
<select id="ulke">
<option>seçin</option>
<option value="1">türkiye</option>
<option value="2">bulgaristan</option>
<option value="3">iran</option>
</select>
<select id="sehir">
<option>ülke seçin</option>
</select>
<select id="ilce">
<option>ülke ve şehir seçin</option>
</select>

<script>
var ulkeler = new Array();
var ulkelex = new Array();
ulkelex[0] =ulkelex[1]=ulkelex[2]=ulkelex[3] = new Array();
ulkeler[0] = new Array('ülke seçin');
ulkeler[1] = new Array('seçin','istanbul','ankara','izmir');
ulkeler[2] = new Array('seçin','sofya','filibe','varna');
ulkeler[3] = new Array('seçin','tebriz','isfahan','tahran');
ulkelex[0][0] = new Array('ülke seçin');
ulkelex[1][0] = new Array('ülke seçin');
ulkelex[2][0] = new Array('ülke seçin');
ulkelex[3][0] = new Array('ülke seçin');
ulkelex[1][1] = new Array('şehir seçin','beykoz','uskudar','kadikoy');
ulkelex[1][2] = new Array('şehir seçin','sincan','çinçin','keçiören');
ulkelex[1][3] = new Array('şehir seçin','selçuk','menderes','bergama');
$('#ulke').change(function() {
var selectetext = '';
var hangi = $(this).val();
for(var i=0;i<ulkeler[hangi].length;i++) {
selectetext = selectetext + '<option value="'+i+'">'+ulkeler[hangi][i]+'</option>';
}
$('#sehir').html(selectetext);
return false;
});
$('#sehir').change(function() {
var selectetext2 = '';
var hangi = $('#ulke').val();
var hanil = $(this).val();
for(var i=0;i<ulkelex[hangi][hanil].length;i++) {
selectetext2 = selectetext2 + '<option value="'+i+'">'+ulkelex[hangi][hanil][i]+'</option>';
}
$('#ilce').html(selectetext2);
return false;
});
</script>

ensar

sirfith sağol ama bilmediğin konuda yorum yapıyorsun, neyin 100mb ından bahsediyorsun? ben az çok biliyorum bu işin nasıl olacağını 100mb değil 5kb ı geçmez ama js de dizi ve onchange olaylarını tanımlayamadım.

yazdığın cevaptaki ilsec() fonksiyonunu soruyorum sadece.

karaden

yahu tüm ülkeler, illeri ve ilçelerinden bahsediyorsun. Bilmediğim konuya niçin cevap yazıyim. En azından 10 tane projem var bu şekilde! Tanımadığın insanları sırf kendin muhabbeti çözemiyorsun diye yargılama, niyetimiz sadece yardım.


buyur, tüm ülkeler, il ilçe eyalet:

download.geonames.org


bu da ilsec() fonksiyonun;

pastebin.com

Sir.Fitih

işin içinde veri tabanı olduğu zaman ben de yazabiliyorum, yazdım da. şu an bana verilerin direk js de diziler halinde girildiği lazım. bu işin aynısını yapan ama verileri veri tabanından çeken kodum:

$(document).ready(function(){
$('#tur').change(function(){
var secim=$('#tur').val();
$.post(
'select.php?a=tur',
{s:secim},
function(answer){
$('#tip').html(answer);
}
);

});
$('#tip').change(function(){
var secim=$('#tip').val();
$.post(
'select.php?a=tip',
{s:secim},
function(answer){
$('#listeleme').html(answer);
document.form1.submit();
}
);

});

yaptığı iş: seçimi select.php ye gönderiyor, select.php dönen değeri 2.select box a listeliyor, 2.den seçince de ekrana listeliyor falan filan. ben de bu yazacağım kodu facebook üzerinden bir sayfada kullanıcam facebook belli oranda kod yazmaya izin veriyor, hem php hem veritabanı yalan yani. uygulama geliştirme olsa olurdu.

karaden
1

mobil görünümden çık