Hé, je me demande comment obtenir l'id d'une case à cocher lorsqu'elle est cochée.
Voici à quoi ressemblerait probablement mon HTML au début:
<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 -->
Je suppose que jQuery ressemblerait à ceci:
$(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;
});
});
J'essaie d'obtenir l'ID de l'élément vérifié, puis de poster cet ID dans une requête mysql pour récupérer les résultats de l'ID dans la base de données.
Merci pour toute aide à ce sujet.
Vous voulez probablement l'événement change
ici, comme ceci:
$(function() {
$(":checkbox").change(function(){
$.post("index.php", { id: this.id, checked: this.checked });
});
});
Ceci s'affiche chaque fois qu'une case à cocher change et permet au côté PHP de connaître l'ID et s'il est coché ou non).
La jQuery que vous avez fournie fonctionne bien? Vous devriez probablement supprimer le return false
à indique que la case a été cochée.
EDIT: $. Post () est pour une demande asynchrone (technique AJAX) donc il n'y aura pas de rafraîchissement de page.
EDIT 2: Vous voudrez peut-être également voir si la case à cocher est cochée (pas seulement si elle a été cliquée):
$(document).ready(function() {
$(":checkbox").click(function(){
var id = $(this).attr('id');
var isChecked = $(this).attr('checked'));
$.post("index.php", { id: id, isChecked: isChecked });
});
});
Vous pouvez utiliser le sélecteur :checkbox
Puis vérifier le id
et les propriétés vérifiées de l'élément DOM comme ceci:
var id = $(this).find(":checkbox")[0].id;
var isChecked = $(this).find(":checkbox")[0].checked;
Vous pouvez mieux utiliser jQuery get au lieu de post. Il vous permet de gérer la sortie de votre demande: http://api.jquery.com/jQuery.get/
Exemple:
$(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;
}
);
});
});
Pourquoi ai-je seulement besoin de cela pour le nom d'une case à cocher, mais $ (ceci) pour accéder à la valeur
$('input:checkbox').change( function() {
console.log("here i am: " + this.name + " value = " + $(this).val() );
}
);