2010-07-29 25 views
14

Hey, kontrol edildiğinde onay kutusunun kimliğini nasıl alacağımı merak ediyorum.Onay kutusunun kimliğini aldınız mı? - jQuery

<div class="check_filter"> 

    <div id="filter"> 
     <input type="checkbox" id="check1" /><label for="check1">Marketing</label> 
     <input type="checkbox" id="check2" /><label for="check2">Automotive</label> 
     <input type="checkbox" id="check3" /><label for="check3">Sports</label> 
    </div> 

</div><!-- End check_filter --> 

jQuery böyle bir şey olmazdı sanıyorum:

$(document).ready(function() {  
    $(":checkbox").click(function(){ 
     var id = $(this).attr('id'); 

     $.post("index.php", { id: id }); 
     //return false to ensure the page doesn't refresh 
     return false; 
    });  
}); 

kontrol ettim almaya çalışıyorum

Bu benim HTML muhtemelen ilk başta nasıl görüneceğini olduğunu öğe kimliği ve sonra kimliği id veritabanının sonuçlarını kapmak için bir mysql sorgusunda post.

Bu konuyla ilgili yardımlarınız için teşekkür ederiz.

+1

Onay kutuları için "click" olayından ziyade 'change' olayını kullanırdım. Aksi halde, kodunuzun iyi çalışması gerektiği anlaşılıyor. Denedin mi ve olmadığını fark ettin mi? This.id için –

cevap

15

Muhtemelen böyle, buradan change olayı istiyorum:

Ayrıca onay kutusu (tıklandığında olmuştur değil sadece) işaretli olup olmadığını görmek isteyebilir
$(function() { 
    $(":checkbox").change(function(){ 
    $.post("index.php", { id: this.id, checked: this.checked }); 
    });  
}); 

Bu, bir onay kutusu her değiştiğinde gönderilir ve PHP tarafının kimliği bilmesini ve kontrol edilip edilmeyeceğini bildirir.

+0

+1, vb., Ancak 'click' (değiştir) 'i (kodu) değiştirmeyi unutmuşsunuzdur. : o) DÜZENLEME: Düzeltildi. – user113716

+0

@patrick - Wops, sabit, @Generic - Buradan test edebilirsiniz: http://jsfiddle.net/nick_craver/zM4md/ spacebar ile çalışıyor, vb :) –

+0

Yorum yaptıktan sonra kendime bir örnek verdim. Özür dilerim, geçen sene olduğu gibi görünüyor. – GenericTypeTea

7

Sağladığınız jQuery düzgün çalışıyor mu? Muhtemelen, return false işaretini onay kutusunu onay kutusunun işaretli olarak kaldırmanız gerekir.

DÜZENLEME: $.post() bir uyumsuz istek (AJAX tekniği) için sayfa yenilemesi olmayacaktır.

DÜZENLEME 2:

$(document).ready(function() {  
    $(":checkbox").click(function(){ 
     var id = $(this).attr('id'); 
     var isChecked = $(this).attr('checked')); 
     $.post("index.php", { id: id, isChecked: isChecked }); 
    });  
}); 
1

Posta yerine jQuery'yi daha iyi kullanabilirsiniz. http://api.jquery.com/jQuery.get/

Örnek: Bu isteğinizin çıkışını ele verir değerini erişmek için

$(document).ready(function() {  
    $(':checkbox').click(function(){ 
     var id = $(this).attr('id'); 
     var isChecked = $(this).attr('checked')); 
     $.get(
      'getcheckbox.php', 
      { id: id, isChecked: isChecked }, 
      function(data) { 
      //return value in getcheckbox.php and use it in on complete function 
      var result = data; 
      } 
     ); 
    });  
}); 
0

Neden sadece bir onay kutusu adı için buna ihtiyacım yok, ama $ (this)

$('input:checkbox').change(function() { 
     console.log("here i am: " + this.name + " value = " + $(this).val()); 
     } 
    ); 
2

Öyle gibi DOM öğesinin özelliklerini :checkbox seçiciyi kullanabilirsiniz ve daha sonra id kontrol edip kontrol edebilirsiniz:

var id = $(this).find(":checkbox")[0].id; var isChecked = $(this).find(":checkbox")[0].checked;

İlgili konular