Hocam şöyle anlatayım.
@rowCount; hocamında dediği gibi tabloda ek olarak durum diye bir sütun ekleyin. 1 ve 0 değerlerini alsın. 0 -> pasif 1-> aktif. Sonrasında kodlarla örnek göstereceğim. Bende bir anket uygulamasında aynı işlemi yapmıştım onun üzerinden anlatmaya çalışayım.
Burada anketlerimi çektim checkbox'ım akitflik durumu 1 se cheked olarak geliyor taloya.
<label class='switch'>
<input type="checkbox" id='<?php echo $anket->id ?>' class="aktifPasif" <?php echo $anket->aktif == 1 ? 'checked' : '' ?> />
<span class='slider round'></span>
</label>Checkbox id si bizim için önemli olan. id ye db den çektiğiniz tablonun primary sütununu verebilirsiniz.
Sonrasında ;
<script>
$(document).ready(function() {
$('.aktifPasif').click(function(event) {
var id = $(this).attr("id");
var durum = ($(this).is(':checked')) ? '1' : '0';
$.ajax({
type: 'POST',
url: 'aktifPasif.php',
data: {
id: id,
durum: durum
},
success: function(result) {
$('#sonuc').text(result);
},
error: function() {
alert('Hata oluştu, daha sonra tekrar deneyiniz.');
}
});
});
});
</script>burda ajax ile oluşturduğumuz aktifPasif.php sayfamıza Post ile id ve durum bilgisini gönderiyoruz.
Şimdide aktifPasif.php sayfamıza geçelim. Burada işlem basit. Post ile gönderdiğmiz id ye göre durumu değiştireceğiz.
aktifPasif.php:
<?php
if ($_POST) {
include("connection.php"); // veritabanı bağlantısının olduğu php sayfası.
$id = (int)$_POST['id']; // listeden gönderdiğimiz verinin id si
$durum = (int)$_POST['durum']; //aktif - pasiflik durumu
$sorgu = $db->query("UPDATE anketler SET aktif=$durum WHERE id=$id"); //db update işlemi
};Update işlemini yaptıktan sonra. Durumu aktif olanları çekeceğiz sadece:
$aktifListe = $db->query("select * from tabloAdi where aktif =1")->fetchAll(PDO::FETCH_ASSOC));