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">
@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.