v2.5.2
Giriş yap

İl, ilçe, mahalle kodlarına farklı bir sayfadan ulaşma problemi

yazilimyolcusu
87 defa görüntülendi

Aşağıdaki il, ilçe ve mahalle kısmını a.php sayfasında tutup, b.php sayfasına çekmek istiyorum. b.php sayfasını a.php sayfasına include ediyorum ama il, ilçe ve mahalleler selectbox'da yüklü gelmiyor. Daha doğrusu il selectbox'ı yüklü gelmiyor. Diğerleri ona bağlı olarak gelecek çünkü. Aşağıdaki kodlar çalışıyor. Bir sorun yok kodlarda. İl, ilçe ve mahalle kısmı yüz yirmi bin satır ediyor. Bu da sayfanın geç açılmasına sebep oluyor. Performans açısından yorucu bir durum. Kodlar aşağıda. Anlatmak istediğimi anlatamadıysam sormaktan çekinmeyiniz.

<?php
// İl bilgisi
$il = isset($_GET['il']) ? $_GET['il'] : '';
if (!empty($il)) {
    $il = mysqli_real_escape_string($db, $_GET['il']);
    $filters[] = "yenieklenenler_il = '$il'";
}

// İlçe bilgisi
$ilce = isset($_GET['ilce']) ? $_GET['ilce'] : '';
if (!empty($ilce)) {
    $ilce = mysqli_real_escape_string($db, $_GET['ilce']);
    $filters[] = "yenieklenenler_ilce = '$ilce'";
}

// Mahalle bilgisi
$mahalle = isset($_GET['mahalle']) ? $_GET['mahalle'] : '';
if (!empty($mahalle)) {
    $mahalle = mysqli_real_escape_string($db, $_GET['mahalle']);
    $filters[] = "yenieklenenler_mahalle = '$mahalle'";
}
?>
<!-- İl Seçimi -->
<div>
    <label for=""><?php echo $dil["a76"]; ?></label>
    <select name="il" id="il" onchange="ilDegisti()">
        <!-- Seçilen ili ilk sıraya ekle -->
        <?php if (!empty($il)): ?>
            <option value="<?php echo $il; ?>" selected><?php echo $il; ?></option>
        <?php else: ?>
            <option value="">Bir il seçiniz</option>
        <?php endif; ?>
    </select>
</div>

<!-- İlçe Seçimi -->
<div>
    <label for=""><?php echo $dil["a77"]; ?></label>
    <select name="ilce" id="ilce" onchange="ilceDegisti()">
        <!-- Seçilen ilçeyi ilk sıraya ekle -->
        <?php if (!empty($ilce)): ?>
            <option value="<?php echo $ilce; ?>" selected><?php echo $ilce; ?></option>
        <?php else: ?>
            <option value="">Bir ilçe seçiniz</option>
        <?php endif; ?>
    </select>
</div>

<!-- Mahalle Seçimi -->
<div>
    <label for=""><?php echo $dil["a130"]; ?></label>
    <select name="mahalle" id="mahalle">
        <!-- Seçilen mahalleyi ilk sıraya ekle -->
        <?php if (!empty($mahalle)): ?>
            <option value="<?php echo $mahalle; ?>" selected><?php echo $mahalle; ?></option>
        <?php else: ?>
            <option value="">Bir mahalle seçiniz</option>
        <?php endif; ?>
    </select>
</div>
<script>
   const sehirler = [
      {
         "sehir_id": "1",
         "sehir_adi": "ADANA"
      },
      {
         "sehir_id": "2",
         "sehir_adi": "ADIYAMAN"
      }]
      </script>

<script>
const ilceler = [
  {
    "ilce_id": "1104",
    "ilce_adi": "SEYHAN",
    "sehir_id": "1",
    "sehir_adi": "ADANA"
  },
  {
    "ilce_id": "1219",
    "ilce_adi": "CEYHAN",
    "sehir_id": "1",
    "sehir_adi": "ADANA"
  }];

  const mahalleler = [
    {"mahalle_id":"72","mahalle_adi":"2000 EVLER MAHALLESİ","ilce_id":"1104","ilce_adi":"SEYHAN","sehir_id":"1","sehir_adi":"ADANA"},
    {"mahalle_id":"1","mahalle_adi":"AHMET REMZİ YÜREĞİR MAHALLESİ","ilce_id":"1104","ilce_adi":"SEYHAN","sehir_id":"1","sehir_adi":"ADANA"},
    {"mahalle_id":"2","mahalle_adi":"AKKAPI MAHALLESİ","ilce_id":"1104","ilce_adi":"SEYHAN","sehir_id":"1","sehir_adi":"ADANA"}];

    // Sayfa yüklendiğinde veya il seçildiğinde şehir dropdown'ını doldur
window.onload = function() {
    populateIlDropdown();
    if (document.getElementById("il").value !== "") {
        populateIlceDropdown();
    }
    if (document.getElementById("ilce").value !== "") {
        populateMahalleDropdown();
    }
};

function populateIlDropdown() {
    const ilDropdown = document.getElementById("il");
    const selectedIl = "<?php echo $il; ?>"; // PHP'den gelen seçili il bilgisi

    // Eğer PHP'de seçilen bir il varsa, bu ili seçeneklerden kaldır
    sehirler.forEach(sehir => {
        if (sehir.sehir_adi !== selectedIl) {
            const option = document.createElement("option");
            option.value = sehir.sehir_adi;
            option.text = sehir.sehir_adi;
            ilDropdown.appendChild(option);
        }
    });
}

function ilDegisti() {
    populateIlceDropdown();
    document.getElementById("mahalle").innerHTML = '<option value="">Bir mahalle seçiniz</option>'; // Mahalle sıfırlanır
}

function populateIlceDropdown() {
    const ilceDropdown = document.getElementById("ilce");
    const selectedIl = document.getElementById("il").value;

    ilceDropdown.innerHTML = '<option value="">Bir ilçe seçiniz</option>'; // İlçeleri sıfırla

    const ilgiliIlceler = ilceler.filter(ilce => ilce.sehir_adi === selectedIl);
    ilgiliIlceler.forEach(ilce => {
        const option = document.createElement("option");
        option.value = ilce.ilce_adi;
        option.text = ilce.ilce_adi;
        ilceDropdown.appendChild(option);
    });
}

function ilceDegisti() {
    populateMahalleDropdown();
}

function populateMahalleDropdown() {
    const mahalleDropdown = document.getElementById("mahalle");
    const selectedIlce = document.getElementById("ilce").value;

    mahalleDropdown.innerHTML = '<option value="">Bir mahalle seçiniz</option>'; // Mahalleleri sıfırla

    const ilgiliMahalleler = mahalleler.filter(mahalle => mahalle.ilce_adi === selectedIlce);
    ilgiliMahalleler.forEach(mahalle => {
        const option = document.createElement("option");
        option.value = mahalle.mahalle_adi;
        option.text = mahalle.mahalle_adi;
        mahalleDropdown.appendChild(option);
    });
}
  </script>
Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!