Ce que je ne comprends pas, si je mets laVar.id = 12 dans Flash; je ne peux pas reçevoir la valeur id depuis PHP?:?
Merci
Version imprimable
Ce que je ne comprends pas, si je mets laVar.id = 12 dans Flash; je ne peux pas reçevoir la valeur id depuis PHP?:?
Merci
si tu mets laVar.id = 12 puis que tu fais sendAndLoad, si ton script php renvoie un nouvel id dans la function onLoad tu peux la recuperer laVar.id si tu utilises le meme LoadVars pour l'envoi et la reception.
J'ai repris ton code:
Dans Flash :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 var lv_reception:LoadVars = new LoadVars(); lv_reception.onLoad = function(success:Boolean) { if (success) { //code a mettre par rapport aux variables receptionnees _root.id2.text = lv_reception.id; // afficher l'ID } else { trace("erreur chargement"); _root.id2.text = "erreur chargement"; } }; var lv_envoi:LoadVars = new LoadVars(); lv_envoi.id = 52; //ajout a lv_envoi de la variable id de valeur 52 lv_envoi.sendAndLoad("index.php", lv_reception, "GET");
Dans nom navigateur avec index.php?id=10, flash affiche 52 et non 10. :(Citation:
Error opening URL
Quel est le code de ton script php et de ton fichier .fla?
Voilà
Code Flash
Code PHPCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 var lv_reception:LoadVars = new LoadVars(); lv_reception.onLoad = function(success:Boolean) { if (success) { //code a mettre par rapport aux variables receptionnees _root.id2.text = lv_reception.id; } else { trace("erreur chargement"); _root.id2.text = "erreur chargement"; } }; var lv_envoi:LoadVars = new LoadVars(); lv_envoi.id = 52; //ajout a lv_envoi de la variable id de valeur 52 lv_envoi.sendAndLoad("index.php", lv_reception, "GET");
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $id = $_GET["id"]; echo "id=".$id; ?> <body bgcolor="#dcdcdc"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.#version=5,0,30,0" height="400" width="550"> <param name="movie" value="test.swf"> <param name="quality" value="best"> <param name="play" value="true"> <embed height="400" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" src="test.swf" type="application/x-shockwave-flash" width="550" quality="best" play="true"> </object> </body>
Alors :
Dans Flash : Error opening URL -> verifier l'url du fichier.
Dans nom navigateur avec index.php?id=10, flash affiche 52 et non 10 -> si tu lances le script par ton navigateur il ne passe aucunement par flash et donc affiche 10. Par contre en lancant flash celui ci affiche 52 car avec :
lv_envoi.id = 52; //ajout a lv_envoi de la variable id de valeur 52
lv_envoi.sendAndLoad("index.php", lv_reception, "GET");
tu dis de faire "index.php?id=52".
En fait pour appeler index.php?id=x, il faut que dans ton code flash tu lui dise que lv_envoi.id = x.
mais j'ai bien mis: lv_envoi.id = 52;:(
flash te met cb en trace?
le Trace:
Error opening URL "http://localhost/test/test.php?id=52"
erreur chargement
Hum comment ca se fait qu'il essaie d'ouvrir test.php alors que ton script est cense s'appele index.php?
ça marches sauf un dernier problème avec PHP:
Si j'ai ce code
rien dans FlashCode:
1
2
3
4 <?php $id = $_GET["id"]; echo "id=".$id; ?>
mais avec ce code:
j'ai bien 10 qui s'affiche.Code:
1
2
3
4
5 <?php $id = $_GET["id"]; echo "id=".$id; echo "&id=10"; ?>
:?
Hum il affiche 10 car tu lui dis explicitement que id=10 (echo "&id=10").
Par contre que le premier ne marche pas signifie qu'il ne recoit rien en GET peut etre parce que dans le GET faut mettre la variable entre guillemets simples (je sais pas si les doubles marchent). Essaie et dis moi ce que ca donne.
Code:
1
2
3
4
5 <?php $id = $_GET['id']; echo "id=".$id; ?>
Bon en fait les guillemets doubles marchent aussi donc ce n'est pas ca ...
Peux tu me dire en fait pourquoi avec:
tu dois avoir 10 qui s'affiche? quel est ton code flash qui te permet de dire que 10 doit s'affcher?Code:
1
2
3
4
5 <?php $id = $_GET["id"]; echo "id=".$id; ?>
Pour le code:
il doit s'afficher dans Flash la valeur qui vient de l'URL: index.php?id=20Code:
1
2
3
4 <?php $id = $_GET["id"]; echo "id=".$id; ?>
id=20 (affichage dans la page php)
et après dans Flash affichage de 20
Mais est ce que tu dis bien dans ton fichier flash que l'id que tu veux c'est 20?
Non, je veux pouvoir definir la valeur de l'ID avec index.php?id=20 ou autre...
Donc si tu veux pouvoir specifier l'id avec l'index.php il te suffit dans ton objet LoadVars d'envoi de modifier la valeur de l'id pour que ton script php recoit le bon id.
Mais je veux faire le contraire c'est le script Flash qui doit recevoir id, c'est pour ça que je comprends pas pourquoi dans nom index.php
si j'ai
Flash affiche 10Code:
1
2
3 <?php echo "id=10"; ?>
si j'ai
Flash affiche 100 etc...Code:
1
2
3 <?php echo "id=100"; ?>
Mais avec
ou je défini index.php?id=100Code:
1
2
3
4 <?php $id = $_GET["id"]; echo "id=".$id; ?>
rien :?
Bonjour!
J'ai trouvé vos réponses très utile (4 ans après!!).
Je viens vers toi car j ai un petit souci, dont la discussion ne traite pas.
Tout marche correctement, flash vient chercher la variable php pour l'affiche, sauf qu'au lieu d'afficher le texte proprement dit, cela m'affiche ceci :
onLoad=%5Btype%20Function%5D
Que dois je faire pour corriger cela?
Mon code flash :
Mon code php :Code:
1
2
3
4
5
6
7
8
9 var montexte = new LoadVars(); montexte.onLoad = function(success:Boolean) { if (success) { _root.txt.text = this.texte; } else{ trace("Erruer"); } }; montexte.load("texte.php", this, "GET");
Code:
1
2
3
4 <?php $texte = 53; echo "variablephp=".$texte; ?>