Belirli checkbox ları otomatik seçtirme
Örnek olarak butona tıklayınca 2 ve 4 nolu checkbox checked olsun nasıl yapabilirim bunu :)
Belirli listeler oluşturacağım listede mısal 2 ve 4 olacak
<button>2 ve 4 olanı seç</button>
<input type="checkbox" name="aktivite[]" value="1">
<input type="checkbox" name="aktivite[]" value="2">
<input type="checkbox" name="aktivite[]" value="3">
<input type="checkbox" name="aktivite[]" value="4">
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
@thenerepe sorunuza tam olarak doğru cevap vermiş.
Siz "Peki yüzlerce checkbox varsa bunları array'dan çekebilir miyim?" diye sorunuzu genişletmişsiniz.
Evet array ile seçebilirsiniz.
const selectedValues = ["2","4"]; // Sizin seçilmiş değerlerinizi tutan diziniz. Tüm değerler string türünde olmalı.
const $button = $("button"); // butonunuzu burada seçin.
const $checkboxes = $("input[type=checkbox]"); // checkbox'larınızı burada seçin.
// Butona tıklandığında...
$button.on("click", function() {
// Tüm checkbox'ları tek tek dön.
for(let i=0; i < $checkboxes.length; i++) {
// Eğer bu checkbox'ın value'si selectedValues dizisinde var mı?
const status = selectedValues.includes($checkboxes.eq(i).val());
// Varsa checkbox seçili olur yoksa seçilmemiş olur.
$checkboxes.eq(i).prop("selected", status);
}
});
Siz büyük ihtimalle bu verileri PHP ile javascript'e gönderiyorsunuz ki "explode edip yazsak" demişsiniz.
Şimdi "Nasıl javascript array'ını PHP ile dolduracağım?" diye soracaksanız, PHP'deki verinin elinizde ne şekilde olduğuna bakmak gerekir.
Eğer elinizdeki veri şu formattaysa: $values = ["2", "4"];
bunu json_encode()
fonksiyonuyla yapabilirsiniz:
<script>
const selectedValues = <?= json_encode($values) ?>; // Sizin seçilmiş değerlerinizi tutan diziniz.
// Tüm değerlerin string olduğuna emin olmamız gerekiyor.
selectedValues.map(function(item) { item = item.toString(); });
const $button = $("button"); // butonunuzu burada seçin.
const $checkboxes = $("input[type=checkbox]"); // checkbox'larınızı burada seçin.
// Butona tıklandığında...
$button.on("click", function() {
// Tüm checkbox'ları tek tek dön.
for(let i=0; i < $checkboxes.length; i++) {
// Eğer bu checkbox'ın value'si selectedValues dizisinde var mı?
const status = selectedValues.includes($checkboxes.eq(i).val());
// Varsa checkbox seçili olur yoksa seçilmemiş olur.
$checkboxes.eq(i).prop("selected", status);
}
});
</script>
Eğer "PHP tarafında verilerim böyle array içinde değil. Nasıl array haline getireceğim?" derseniz bu bambaşka bir soru. Verinizin ne şekilde olduğunu belirten yeni bir soru oluşturmalısınız.
Javascript olarak pek bilgim yok ama stackoverflow'dan buldugum kadarı ile sizin işinizi görecek kodları bırakıyorum.
<form action="">
<input type="checkbox" name="aktivite[]" value="first">First Option<br>
<input type="checkbox" name="aktivite[]" value="second">Second Option<br>
<input type="checkbox" name="aktivite[]" value="third">Third Option<br>
<input type="checkbox" name="aktivite[]" value="fourth">Fourth Option
</form>
<button type="button">2 ve 4 Degelerini İşaretle</button>
$(function() {
$("button").on("click",function() {
//Burada value="deger" olan kısıma checkboxa hangi degeri verdiyseniz buraya yazacaksınız
$("input[value='second']").prop("checked",true);
$("input[value='fourth']").prop("checked",true);
//Aynı Kodları Kopyalayarak Çogaltabilirsiniz.
//$("input[value='first']").prop("checked",true);
//$("input[value='third']").prop("checked",true);
});
});
İstediginiz işlemin kodları bunlardır. Editleyerek buraya ekledim ama eger ki orijinal haline bakmak isterseniz linki'de bırkaıyorum.