Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 16h11   #1
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 8
Points : 8
Par défaut sendAndLoad et array multidimensionnel

Salut

Je cherche a envoyer un grand lot de variables (240) à un fichier PHP, via la méthode sendAndLoad. Jusque là pas de souci, vu que ca ressemble fortement à de l'AJAX. Mais pour avoir un code plus propre (oui je suis maniaque ^^), je préférerai envoyer toutes ces variables via un tableau à 3 dimensions associatif.

Mon probleme c'est que je ne suis pas sur de l'équivalence syntaxique en AS de mon tableau PHP, dont voici un extrait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//initilisation du tableau...
$repas = array ("petit dej", 
		"dej", 
		"gouter/colation", 
		"diner");
 
	$tableau_repas = array ("J-2" => $repas, 
				"J-1" => $repas, 
				"J-1" => $repas);
 
//... puis remplissage
	/* J-2 */
$tableau_repas["J-2"]["petit dej"] = array (
	$j2_ptitdej_nom1 => $a_b_qté1, //nom aliment => qté
	$j2_ptitdej_nom2 => $j2_ptitdej_qté2, //...
	$j2_ptitdej_nom3 => $j2_ptitdej_qté3, 
	$j2_ptitdej_nom4 => $j2_ptitdej_qté4, 
	$j2_ptitdej_nom5 => $j2_ptitdej_qté5, 
	$j2_ptitdej_nom6 => $j2_ptitdej_qté6, 
	$j2_ptitdej_nom7 => $j2_ptitdej_qté7, 
	$j2_ptitdej_nom8 => $j2_ptitdej_qté8, 
	$j2_ptitdej_nom9 => $j2_ptitdej_qté9, 
	$j2_ptitdej_nom10 => $j2_ptitdej_qté10);
 
$tableau_repas["J-2"]["Dej"] = array (
	$a_b_nom1 => $a_b_qté1, //nom aliment => qté
	$a_b_nom2 => $a_b_qté2, //...
	$a_b_nom3 => $a_b_qté3, 
	$a_b_nom4 => $a_b_qté4, 
	$a_b_nom5 => $a_b_qté5, 
	$a_b_nom6 => $a_b_qté6, 
	$a_b_nom7 => $a_b_qté7, 
	$a_b_nom8 => $a_b_qté8, 
	$a_b_nom9 => $a_b_qté9, 
	$a_b_nom10 => $a_b_qté10);
 
//etc
  • Pourriez-vous m'aidez a le convertir en AS pour qu'il reste aussi présentable, svp.

De plus, je ne pense pas qu'un tableau puissent etre envoyé correctement à mon fichier php via ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* Code Action Script */
var envoie_DATA:LoadVars = new LoadVars();//on déclare un objet d'envoi (instancié avec la classe LoadVars)
 
/* on ajoute les variables à envoyer */
envoie_DATA.qui = 11;//indique a php que c'est pour l'algo peau
envoie_DATA.age = 0; envoie_DATA.taille = 0; envoie_DATA.poid = 0; //profil
envoie_DATA. = 0; envoie_DATA. = 0; envoie_DATA. = 0; //
envoie_DATA.tableau_repas:Array = repas;//tableau a creer !
 
var resultat:LoadVars = new LoadVars();//on déclare un objet de réception
resultat.onLoad = function(success:Boolean)
	{//fonction qui s'exécute lorsque l'objet resultat reçoit l'information que les données ont été chargées("success" est un booléen qui est automatiquement renvoyé par onLoad).
		if (success)//les données ont été correctement chargées
		{
			//
			//ici la lecture du fichier xml généré...
			//
		}
		else//en cas d'échec de la connexion
		{
			trace("la connexion a échoué");//message d'erreur pour test, par exemple
		}
	};
 
envoie_DATA.sendAndLoad(fichier_cible_PHP, resultat, "POST");//on envoit les données à PHP avec la méthode sendAndLoad
//paramètre 1 : le script php cible //paramètre 2 : un objet LoadVars récepteur //la méthode d'envoi (POST ou GET)
  • Y a t il une méthode spéciale pour envoyer un tableau via sendAndLoad ?

merci d'avance
robin des bulles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 12h55   #2
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
c est de l as2 ton code, utilise URLRequest ( Google ) URLVariable ( Google ).

Ensuite pour envoyer un vrai tableau oriente toi vers amfphp qui permet d echanger de vrais objet de php a flash. Sinon echange tes informations avec un format comprehensible par les deux comme le xml ou un string.

Bon courage =)
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 17h26   #3
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 8
Points : 8
Merci pour ta réponse !

Vu que je n'ai que 4-5 tableaux à envoyer je ne vais pas utiliser amfphp, ca me semble un peu disproportionné : tant pis, je vais lister les variables ds mon POST.

Par contre, peux tu m'indiquer qu'est ce qui est mal écrit pour que ce soit de l'AS3, ou sont mes erreurs ?

Et pourquoi m'orientes-tu vers URLRequest/URLVariable, sendAndLoad n'est pas suffisant ?
robin des bulles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 18h27   #4
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Parce que sendAndLoad n existe plus en as3 =)

Voila un exemple en as3 :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Creation d un data
var data = new Object();
data.user = "IP-Fix";
data.job = "UX"
//autre data...
 
//creation de l url request
var request:URLRequest = new URLRequest(url);
request.data = data;
request.method = URLRequestMethod.POST;
 
// creation du loader qui recupere les valeurs de retour
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, onLoadComplete);
 
//et BIM on balance le tout
loader.load(request);
 
function onLoadComplete(e:Event):void {
    //envois termine
}
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h28   #5
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 8
Points : 8
Donc quelque chose comme ca serait plus correct ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var postForm:URLRequest = new URLRequest(fichier_cible_PHP);//initialisation de l'envoyeur
var urlDATA:urlVariables=new urlVariables();//initialisation des variables
 
	/* on ajoute les variables à envoyer */
		urlDATA.qui = 11;//indique a php que c'est pour l'algo peau
 
		urlDATA.age = 0; urlDATA.taille = 0; urlDATA.poid = 0; //profil
		urlDATA.xxx = 0; urlDATA.xxx = 0; urlDATA.xxx = 0; //sportif, etc
		urlDATA.repas["repas[]"] = le_tableau;//tableau des repas
 
postForm.data = urlDATA;//ajoute les variables a l'URL
postForm.method = URLRequestMethod.POST;//definie la méthode d'envoie : GET ou POST
 
var reponsePHP:URLLoader = new URLLoader();//intialisation du recepteur
reponsePHP.addEventListener(ProgressEvent.PROGRESS, requeteLOAD);//appel requeteLOAD 'pendant' la requete
reponsePHP.addEventListener(IOErrorEvent.IO_ERROR, requeteFAIL);//appel requeteFAIL lorsqu'une erreur de chargement se produit
reponsePHP.addEventListener(Event.COMPLETE, requeteSUCCESS);//appel requeteSUCCESS si ca marche
 
reponsePHP.load(postForm);
 
function requeteLOAD(event:Event)//gestion du temps d'attente pendant la requete
{
	trace(event.target.bytesLoaded+" chargés sur "+event.target.bytesTotal);//trace pour test
}
 
function requeteFAIL(e:*)//gestion des erreurs d'envoi de la requete
{
	trace( "Erreur lors du chargement : "+ erreur );//trace pour test
}
 
function requeteSUCCESS(e:Event)//ici lecture de la réponse renvoyé par PHP
{
	/* PHP renverra : */
	//...
}
robin des bulles est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h24.


 
 
 
 
Partenaires

Hébergement Web