Aller au contenu

Récupérer l'état d'une checkbox


aodot

Sujets conseillés

Bonjour à tous,

Je souhaite récupérer l'état d'une checkbox et son id. Pour l'id cela est ok mais quand je rajoute l'état, cela me bloque le code ou en tout cas rien ne se passe.

Voici l'appelle de la fonction :

onclick="javascript:search_zone(<?PHP echo $data_secteur[id]; ?>)"

Où $data_secteur[id] est l'id dynamique de la checkbox.

Voici la fonction :

<script type="text/javascript">function search_zone($id)
{
var ajaxplug=null;

if (window.XMLHttpRequest) {
ajaxplug = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
ajaxplug = new ActiveXObject("Microsoft.XMLHTTP");
}

var etat = document.getElementById("sect_"+$id).checked);
ajaxplug.open("GET", "recherche_zone.php?id="+$id"&etat="+etat, true);
ajaxplug.send(null);


}</script>

Qui apelle le fichier recherche_zone.php dans lequel je récupére l'id et l'état. Cela fonctione pour l'id mais pas pour l'état.

Auriez vous une petite piste s'il vous plait ?

Merci par avance.

Aymeric

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Que veux-tu dire par "ça ne marche pas" ?

Tu utilises la bonne méthode pour récupérer l'état. Ensuite, quand la requête est envoyée au serveur, la variable etat peut prendre deux valeurs :

true

false

PHP va alors la traiter comme une simple chaîne de caractères. C'était à dire que :

if($_REQUEST['etat'])

Vaudra toujours "true" (même si la case n'était pas cochée), car php regarde simplement si la variable existe (même si sa valeur est false).

Alors que :

if($_REQUEST['etat'] == 'true')

Retourne true si la case a été cochée, false sinon. C'est donc plutôt cette méthode qu'il faut employer.

Pour tout ce qui est Ajax : il faut absolument utiliser un outil tel que Firebug (sur Firefox), DragonFly (sur Opera), ou l'outil de développement de Chrome, ça aide énormément.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...