Webmaster Hub: Récupérer l'état d'une checkbox - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

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

#1 L'utilisateur est hors-ligne   aodot 

  • Groupe : Hubmaster
  • Messages : 201
  • Inscrit(e) : 18-février 07
  • Genre:Homme
  • Localisation:Paris

Posté 05 décembre 2011 - 17:41

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
0

#2 L'utilisateur est hors-ligne   Ernestine 

  • Groupe : Fondatrice
  • Messages : 1 034
  • Inscrit(e) : 21-août 03
  • Genre:Femme

Posté 05 décembre 2011 - 19:07

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.
0

#3 L'utilisateur est hors-ligne   aodot 

  • Groupe : Hubmaster
  • Messages : 201
  • Inscrit(e) : 18-février 07
  • Genre:Homme
  • Localisation:Paris

Posté 12 décembre 2011 - 10:49

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

Merci.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)