2010-03-03 5 views
2

Je suis nouveau et jquery ajax et je vais avoir du mal à faire ça ...Comment mettre à jour un champ mysql quand un état de case à cocher change? en utilisant jquery (ajax), php et mysql

J'ai une page web php qui construit une table avec des valeurs d'une table mysql. Les lignes sont des "messages" et le dernier champ de la ligne est un champ booléen "read" qui indique si le message a été lu ou non.

Construire la table, je transforme la valeur booléenne à une case à cocher pour être « cochée » ou « non contrôlée », soit la valeur est 1 ou 0.

Ce que je veux faire est de connecter cette case à une ajax event, en utilisant jquery, que si l'état de la case à cocher change (si on clique dessus), il envoie deux valeurs (état de la case à cocher lorsque la table a été chargée pour la première fois) avec un autre fichier php.

Sur cet autre fichier php je mettrais à jour le statut "read" de ce message particulier sur ma table mysql.

Pouvez-vous me donner des lumières sur la façon de faire cela? La partie php je peux gérer, mais je ne sais pas ce que jquery/fonctions Ajax pour construire et comment les appeler de la part html de la case à cocher ...

Merci

Répondre

1

Le code suivant ajoutera un événement gestionnaire à la case à cocher avec l'ID #checkboxId. Le gestionnaire appellera test.php? Check = 0 ou check = 1, en fonction de l'état actuel de la case à cocher (non coché/coché)

edit: vous avez ici un exemple complet pour le client. à partir de php, vous devez renvoyer les identifiants de message en tant que valeur de cases à cocher. ceci est ensuite renvoyé au serveur en tant que param msgId. Supporte maintenant plusieurs cases à cocher avec un filtrage de classe. Vous pouvez changer les noms des classes et des paramètres, bien sûr.

<html> 
<head> 
<title>Checkbox test</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 

</head> 
<body> 

<input type="checkbox" class="messageActivated" value="msg0"> 
<input type="checkbox" class="messageActivated" value="msg1"> 
<input type="checkbox" class="messageActivated" value="msg2"> 

</body> 

<script type="text/javascript"> 
$(".messageActivated").bind('click', function() { 
    if($(this).attr('checked')) 
    { 
     $.get("store.php", { checked: 1, msgId: $(this).attr('value') }); 
    } 
    else 
    { 
     $.get("store.php", { checked: 0, msgId: $(this).attr('value') }); 
    } 
}); 
</script> 
</html> 
+0

Merci pour votre réponse. Juste quelques doutes ... Avec ce code, comment puis-je passer le message_id au fichier test.php? Et d'autres doutes ... comment j'appelle cette fonction sur cette partie html ? – Metraton

+0

la fonction est appelée automatiquement, car en usind "$ (". MessageActivated "). Bind ('click',", vous ajoutez un gestionnaire d'événements à chaque case Problème avec le passage de l'identifiant du message a été résolu dans la version actuelle ... quelqu'un ne m'aime pas; (( –

Questions connexes