select checkbox kombin çalışması
merhabalar php ile select ve checkbox baglantılı yapmak istiyorum. Select option ile illeri çekiyorum il i seçince ile baglı ilçeleri checkbox olarak getirmek istiyorum sayfa yenileme yapmadan php twig olarak normalde ekleneni düzenle yaptıgımda il geldigi için request->get le ili getirdigim için ile göre ilçeyi getirebiliyorum ama yeni ekleme yapmak istedigimde il listesi getiriyorum ama il seçtigimizde ilçeleri getirmek istiyorum sayfa yenilemeden yardımcı olurmusuunuz
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Eğer sayfa yenileme yapmadan, Ajax kullanarak dinamik olarak ilçeleri getirmek istiyorsanız, aşağıda PHP ve JavaScript kullanarak bu işlemi gerçekleştirebileceğiniz bir örnek bulunmaktadır. Bu örnekte jQuery kullanılmıştır, bu nedenle jQuery kütüphanesini sayfanıza eklemeniz gerekebilir.
İlk olarak, HTML sayfanızda bir select (il seçimi için) ve bir div (ilçelerin listeleneceği yer) ekleyelim:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>İl ve İlçe Seçimi</title>
<!-- jQuery kütüphanesini ekleyin -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
</head>
<body>
<label for="il">İl:</label>
<select id="il" name="il" onchange="getIlceler()">
<option value="1">İstanbul</option>
<option value="2">Ankara</option>
<!-- Diğer illeri buraya ekleyin -->
</select>
<div id="ilceListesi"></div>
<script>
function getIlceler() {
// Seçilen ilin değerini al
var ilId = $("#il").val();
// Ajax isteği gönder
$.ajax({
url: 'getIlceler.php',
type: 'POST',
data: { ilId: ilId },
success: function(response) {
// İlçeleri göster
$("#ilceListesi").html(response);
}
});
}
</script>
</body>
</html>
Daha sonra, getIlceler.php
adında bir PHP dosyası oluşturun ve bu dosyada ilçeleri getiren bir fonksiyon yazın:
<?php
// getIlceler.php
// Veritabanı bağlantısı veya ilçeleri alma işlemleri burada gerçekleştirilmelidir.
// Bu örnekte sabit bir dizi kullanılmıştır.
$ilId = isset($_POST['ilId']) ? $_POST['ilId'] : null;
if ($ilId !== null) {
// Veritabanından ilçeleri al
$ilceler = getIlcelerByIlId($ilId);
// Checkboxları oluştur
foreach ($ilceler as $ilce) {
echo '<input type="checkbox" name="ilce[]" value="' . $ilce['id'] . '">' . $ilce['isim'] . '<br>';
}
}
function getIlcelerByIlId($ilId) {
// Bu kısmı kendi veritabanı yapınıza göre uyarlayın.
// Örnek olarak sabit bir dizi kullanılmıştır.
$veritabanindan_alinan_ilceler = array(
array('id' => 1, 'isim' => 'İlçe 1'),
array('id' => 2, 'isim' => 'İlçe 2'),
// Diğer ilçeleri buraya ekleyin
);
// İlçeleri filtrele
$ilceler = array_filter($veritabanindan_alinan_ilceler, function ($ilce) use ($ilId) {
return $ilce['ilId'] == $ilId;
});
return $ilceler;
}
?>
Bu örnek, seçilen ilin değerini alarak getIlceler.php
dosyasına Ajax isteği gönderir ve ilgili ilçeleri geri alarak sayfada gösterir. getIlcelerByIlId
fonksiyonu, seçilen ile bağlı olarak ilçeleri döndürmek üzere örnek bir veritabanı işlevini temsil eder. Gerçek veritabanınıza uygun şekilde bu kısmı uyarlamalısınız.