Aide - Recherche - Membres - Calendrier
Version complète : Récupération état checkbox avec php
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Gestion de données dynamiques
Benos2000
Bonjour, je suis bloqué depuis un moment sur un problème tout bête.

Je ne sais pas comment récupérer l'état d'une checkbox avec php.

J'ai donc un formulaire Flash, et sur le code du bouton de validation, j'ai comme code:

Action Script

var ma_checkbox = '';

if(_root.ma_checkbox.selected == true) {
ma_checkbox = 'oui';
}

dmcLoadVars.ma_checkbox = ma_checkbox;



Du côté html, lorsque je teste la valeur de la variable ma_checkbox, je n'ai rien.

Pouvez-vous me dire ce qui bloque ?

Merci par avance.
Joni
Bonjour,

Ou et comment fais-tu l'appel au script PHP ???

A+

Joni
Benos2000
En fait, je récupère les variables sur une page php de cette manière :

Action Script

$ma_checkbox = '';

if(isset($_GET['ma_checkbox'])) {
$ma_checkbox = $_GET['ma_checkbox'];
$ma_checkbox = utf8_decode($ma_checkbox);

echo $ma_checbox;
}


Ca fonctionne très bien pour les champs texte ou les listes déroulantes, mais les checkbox ne renvoient rien.
Benos2000
J'ai vu qu'il fallait utiliser un écouteur pour pouvoir récupérer l'état d'une case à cocher, j'ai donc fat ça :

Action Script

var dmcecouteur = new Object();

dmcecouteur.click = function(evt) {

var ma_checkbox = '';

if (ma_checkbox.selected) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "";
}

}

DmcCheckBox.addEventListener("click", dmcecouteur);


Ensuite je transmet ma variable au fichier php de cette manière :

Action Script

dmcLoadVars.ma_checkbox = ma_checkbox;


Mais dans mon fichier php, la variable est toujours vide...

Pouvez-vous m'aider ?

Merci par avance.
monz
Citation (Benos2000 @ Nov 20 2008, 07:11 PM) *
J'ai vu qu'il fallait utiliser un écouteur pour pouvoir récupérer l'état d'une case à cocher, j'ai donc fat ça :

Action Script

var dmcecouteur = new Object();

dmcecouteur.click = function(evt) {

var ma_checkbox = '';

if (ma_checkbox.selected) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "";
}

}

DmcCheckBox.addEventListener("click", dmcecouteur);


Ensuite je transmet ma variable au fichier php de cette manière :

Action Script

dmcLoadVars.ma_checkbox = ma_checkbox;


Mais dans mon fichier php, la variable est toujours vide...

Pouvez-vous m'aider ?

Merci par avance.


Salut,

Ton code ressemble à un mix AS2/AS3. Tu es sûr du langage que tu utilises ?

Sinon, en AS3, ça devrait ressembler à ça :

Action Script


var ma_checkbox:String = '';


function dmcecouteur(evt:MouseEvent):void
{
if (DmcCheckBox.selected) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "";
}
}

DmcCheckBox.addEventListener(MouseEvent.CLICK, dmcecouteur);
Benos2000
Merci monz pour ta réponse, en fait j'utilise AS2.
monz
Citation (Benos2000 @ Nov 21 2008, 08:58 AM) *
Merci monz pour ta réponse, en fait j'utilise AS2.


Dans ce cas, oublie les addEventListener.

Et pour ton code, si ton DmcCheckBox est ta checkbox, il faut que cela apparaisse dans ta condition :

Action Script


if (DmcCheckBox.selected) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "";
}



Benos2000
Merci beaucoup, je teste ça.
Benos2000
Arf, j'ai essayé ça, mais je ne récupère toujours pas l'état de la checkbox dans mon fichier php :

Action Script

var ma_checkbox:String;
ma_checkbox = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {
if (_root.ma_checkbox.selected == true) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "non";
}
};

checkBoxInstance.addEventListener("click", listenerObject);


Je ne comprends pas trop...

Merci encore pour votre aide.
monz
Citation (Benos2000 @ Nov 21 2008, 11:02 AM) *
Arf, j'ai essayé ça, mais je ne récupère toujours pas l'état de la checkbox dans mon fichier php :

Action Script

var ma_checkbox:String;
ma_checkbox = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {
if (_root.ma_checkbox.selected == true) {
ma_checkbox = "oui";
}
else {
ma_checkbox = "non";
}
};

checkBoxInstance.addEventListener("click", listenerObject);


Je ne comprends pas trop...

Merci encore pour votre aide.


Tu continues de mélanger AS3 et AS2.
De plus, soit ton checkBox s'appelle checkBoxInstance, soit il s'appelle ma_checkBox, mais tu ne peux pas mélanger les deux.

Donc :

Action Script


var ma_checkbox:String;
ma_checkbox = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {
if (checkBoxInstance.selected) // regarde si l'instance checkbox est sélectionnée
{
ma_checkbox = "oui";
}
else {
ma_checkbox = "non";
}
};

checkBoxInstance.addListener(listenerObject); //on ajoute l'écouteur
Benos2000
Punaise, rien à faire, ça ne fonctionne pas.
J'ai alors essayé ça :

Action Script

on (release) {

var ma_checkbox = '';

if(ma_checkbox.selected) {
ma_checkbox = 'oui';
}
else {
ma_checkbox = 'non';
}

}


Je récupère bien une variable avec php, mais que la checkbox soit cochée ou non, je reçois "non"...

Sur le code que tu m'as donné précédemment :

Action Script

var ma_checkbox:String; 
ma_checkbox = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {
if (checkBoxInstance.selected) // regarde si l'instance checkbox est sélectionnée
{
ma_checkbox = "oui";
}
else {
ma_checkbox = "non";
}
};

checkBoxInstance.addListener(listenerObject); //on ajoute l'écouteur


... je ne comprends pas à quoi correspond checkBoxInstance. Le nom d'occurence de ma checkbox est "ma_checkbox". Est-ce que ça correspond à ça?

J'ai encore besoin d'un coup de main.
monz
Citation (Benos2000 @ Nov 21 2008, 02:01 PM) *
Punaise, rien à faire, ça ne fonctionne pas.
J'ai alors essayé ça :

Action Script

on (release) {

var ma_checkbox = '';

if(ma_checkbox.selected) {
ma_checkbox = 'oui';
}
else {
ma_checkbox = 'non';
}

}


Je récupère bien une variable avec php, mais que la checkbox soit cochée ou non, je reçois "non"...

Sur le code que tu m'as donné précédemment :

Action Script

var ma_checkbox:String; 
ma_checkbox = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {
if (checkBoxInstance.selected) // regarde si l'instance checkbox est sélectionnée
{
ma_checkbox = "oui";
}
else {
ma_checkbox = "non";
}
};

checkBoxInstance.addListener(listenerObject); //on ajoute l'écouteur


... je ne comprends pas à quoi correspond checkBoxInstance. Le nom d'occurence de ma checkbox est "ma_checkbox". Est-ce que ça correspond à ça?

J'ai encore besoin d'un coup de main.

Si ton nom d'occurence est ma_checkbox, tu ne peux pas avoir aussi une variable string ma_checkbox. Sinon, bonjour les confusions.

Alors change l'un des deux.

Sinon, à quel moment envoies-tu tes données vers PHP ? Via un click sur un bouton ?
Benos2000
J'envoie effectivement les données vers php via un bouton, de cette manière :

Action Script

dmcLoadVars.ma_checkbox = ma_checkbox;
dmcLoadVars.send("result.php","_top","GET");


Merci beaucoup pour ton aide en tout cas, je teste immédiatement.
monz
Citation (Benos2000 @ Nov 21 2008, 02:53 PM) *
J'envoie effectivement les données vers php via un bouton, de cette manière :

Action Script

dmcLoadVars.ma_checkbox = ma_checkbox;
dmcLoadVars.send("result.php","_top","GET");


Merci beaucoup pour ton aide en tout cas, je teste immédiatement.


Dans ce cas, dans ton bouton, je ferais quelque chose du genre :

Action Script


dmcLoadVars.ma_checkbox = verifCheck();
dmcLoadVars.send("result.php","_top","GET");
}

//hors du code bouton
function verifCheck():Boolean
{
if (nomdInstancedelacheckBox.selected)
{
return true;
}
return false;
}
Benos2000
[edit]On a posté en même temps, j'essaye ta solution ![/edit]

Ce coup-ci, je récupère bien quelque chose avec php, mais c'est dans les deux cas (checkbox cochée ou non) :

"_level0.ma_checkbox" icon_sad.gif

Voici le code :

Action Script

var checkbox_test:String; 
checkbox_test = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {

if (ma_checkbox.selected) {
checkbox_test = "oui";
}
else {
checkbox_test = "non";
}
};


et donc j'envoie tout ça à php via un bouton :

Action Script


dmcLoadVars.ma_checkbox = ma_checkbox


Un jour ça marchera !

Merci par avance monz !
monz
Citation (Benos2000 @ Nov 21 2008, 03:15 PM) *
[edit]On a posté en même temps, j'essaye ta solution ![/edit]

Ce coup-ci, je récupère bien quelque chose avec php, mais c'est dans les deux cas (checkbox cochée ou non) :

"_level0.ma_checkbox" icon_sad.gif

Voici le code :

Action Script

var checkbox_test:String; 
checkbox_test = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {

if (ma_checkbox.selected) {
checkbox_test = "oui";
}
else {
checkbox_test = "non";
}
};


et donc j'envoie tout ça à php via un bouton :

Action Script


dmcLoadVars.ma_checkbox = ma_checkbox


Un jour ça marchera !

Merci par avance monz !

Tu te rends bien compte que si la chaîne que tu veux faire passer s'appelle "checkbox_test", la variable que tu envoies ne peut pas être "ma_checkbox" qui correspond à ton instance checkbox et donc à "_level0.ma_checkbox".
Benos2000
J'ai rajouté le code que tu m'as donné, et cette fois, que la case soit cochée ou non, je récupère "false" avec php.
C'est déjà mieux que "_level0.ma_checkbox", mais il me manque encore quelque chose.
monz
Citation (Benos2000 @ Nov 21 2008, 03:37 PM) *
J'ai rajouté le code que tu m'as donné, et cette fois, que la case soit cochée ou non, je récupère "false" avec php.
C'est déjà mieux que "_level0.ma_checkbox", mais il me manque encore quelque chose.

Montre ton code...
Benos2000
Côté Flash :

Action Script

// Traitement de la checkbox
var checkbox_test:String;
checkbox_test = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {

if (ma_checkbox.selected) {
checkbox_test = "oui";
}
else {
checkbox_test = "non";
}
};

ma_checkbox.addListener(listenerObject); // on ajoute l'écouteur


// Envoi des variables
dmcLoadVars.ma_checkbox = verifCheck();
dmcLoadVars.send("result.php","_top","GET");


Côté php :

Action Script

$ma_checkbox = '';

if(isset($_GET['ma_checkbox'])) {
$ma_checkbox = $_GET['ma_checkbox'];
$ma_checkbox = utf8_decode($ma_checkbox);

if($ma_checkbox == 'oui') {
$requete = ......;
}
elseif($ma_checkbox == 'non') {
$requete = ......;
}
echo "ma_checkbox : ".$ma_checkbox."<br />";
}


Voilà tout.
monz
Citation (Benos2000 @ Nov 21 2008, 03:49 PM) *
Côté Flash :

Action Script

// Traitement de la checkbox
var checkbox_test:String;
checkbox_test = "";

var listenerObject:Object = new Object();
listenerObject.click = function(eventObject:Object) {

if (ma_checkbox.selected) {
checkbox_test = "oui";
}
else {
checkbox_test = "non";
}
};

ma_checkbox.addListener(listenerObject); // on ajoute l'écouteur
// Envoi des variables
dmcLoadVars.ma_checkbox = verifCheck();
dmcLoadVars.send("result.php","_top","GET");


En fait, je te proposais une autre solution :

Action Script


//hors du code bouton envoie de variable
function verifCheck():Boolean
{
if (ma_checkbox.selected)
{
return true;
}
return false;
}

// Envoi des variables
dmcLoadVars.ma_checkbox = verifCheck();
dmcLoadVars.send("result.php","_top","GET");

Benos2000
Citation (monz @ Nov 21 2008, 03:35 PM) *
Tu te rends bien compte que si la chaîne que tu veux faire passer s'appelle "checkbox_test", la variable que tu envoies ne peut pas être "ma_checkbox" qui correspond à ton instance checkbox et donc à "_level0.ma_checkbox".


J'avais manqué ta réponse, j'ai changé :

Action Script

dmcLoadVars.ma_checkbox = verifCheck();


par :

Action Script

dmcLoadVars.checkbox_test = verifCheck();


mais je reçois toujours "false" que la case soit cochée ou non.

Et j'ai bien rajouté la fonction "verifCheck".
monz
Citation (Benos2000 @ Nov 21 2008, 04:01 PM) *
J'avais manqué ta réponse, j'ai changé :

Action Script

dmcLoadVars.ma_checkbox = verifCheck();


par :

Action Script

dmcLoadVars.checkbox_test = verifCheck();


mais je reçois toujours "false" que la case soit cochée ou non.

Et j'ai bien rajouté la fonction "verifCheck".


Tu as bien mis ton nom d'instance de checkbox dans la fonction verifCheck ? J'avais mis : "nomdinstancedetacheckbox", si tu as simplement fait un copier/coller...
Benos2000
Punaise, je suis une daube ! Ca marche, j'avais effectivement fait copier/coller... Je suis impardonnable.

Un grand merci en tout cas pour ta patience et tes compétences. gourou.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.