• 23-10-2021, 03:10:17
    #1
    Merhaba arkadaşlar,
    İki aşamalı bir select yapım var. 2 aşamada seçildiğinde bir buton ile 2. seçeneğe özel linke gitsin istiyorum. Yardımcı olabilecek var mıdır?

    Örnek:

    İlk aşama:
    --İstanbul
    --Ankara

    İkinci Aşama :
    --İstanbul Seçilirse
    -----Üsküdar
    -----Ümraniye

    --Ankara Seçilirse
    -----Mamak
    -----Sincan

    Son Aşama (buton):
    --Mamak Seçilirse : /mamak.html
    --Sincan Seçilirse : /sincan.html
    --Üsküdar Seçilirse : /uskudar.html
    --Ümraniye Seçilirse : /umraniye.html


    Nette örnek bulamadım. Yardımcı olabilecek var ise çok sevinirim. Şimdiden teşekkürler.
  • 23-10-2021, 04:34:30
    #2
    Bu tarz birşey işinizi görür kendinize göre düzenleyebilirsiniz. r10+ için teşekkür ederim
    $('#selectiniz').change(function(){
    
    if($(this).val() == 'İstanbul') {
    
    $('#istanbul_select').show();
    $('#ankara_select').hide();
    
    }
    
    if($(this).val() == 'Ankara') {
    
    $('#istanbul_select').hide();
    $('#ankara_select').show();
    
    }
    
    });
    
    
    
    $('#ilcesecim').change(function(){
    if($(this).val() == 'ilcemamak'){
        $("#linkiniz").attr("href","/mamak.html");
    }
    if($(this).val() == 'ilcesincank'){
        $("#linkiniz").attr("href","/sincan.html");
    }
    
    });
  • 23-10-2021, 05:27:21
    #3
    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
      });
    });