Jump to content
Sign in to follow this  
aodot

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

Recommended Posts

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Merci pour votre réponse, cela m'a aidé à corriger ce bug, et j'ai donc installé firebug.

Merci.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...