Aide - Recherche - Membres - Calendrier
Version complète : flashvars et methode post
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Intégration HTML
dapimp
Salut tout le monde!
Je ne suis pas très bon en flash donc je me permets de vous exposer mon problème!
J'ai une boucle d'images en php qui sont superposées par des objets flash donc, de ce fait c'est impossible de créer un lien dessus;
C'est pour cela que j'ai transformer mon mon objet flash en bouton et que je souhaite y placer une variable...
je vous montre les codes qui j'espere, seront explicites :

Pour la premiere page en php :

    Action Script


    <div class="cadre">



    <img src= <?php echo '"images/' . $donnees['chemin1'] . '"width="240" height="160" BORDER="0"'; ?> />

    <div class="image">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="360" height="380">

    <param name="movie" value=<?php echo '"templates/premier/images/tv'. $numcadre. '.swf" ';?>>

    <param name="quality" value="high">
    <param name="wmode" value="transparent" />
    <param name="FlashVars" value=<?php echo '"var1='. $donnees['id']. '" ';?>>
    <embed src=<?php echo '"templates/premier/images/tv'. $numcadre. '.swf" FlashVars="var1='.$donnees['id'].'" width="360" height="380" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"';?>></embed></object>
pour le flash (pour l'instant, je n'ai que ca!) :

    Action Script

    id =trace(_root.var1);
    on (release){
    id.sendAndLoad("envoie_site.php?page=lec",id,"POST");}



Pour la seconde page php qui devrait récupérer le post:

    Action Script

    <?php if(isset($_POST['id'])) {echo $_POST ['id'] ;} ?>

Si quelqu'un pouvait m'aider à me dépatouiller de ce petrain,
ce serait génial!

merci d'avance

Nelchaël
Le code PHP/HTML ne me paraît pas faux.
Le code AS, là c'est un peu n'importe quoi en fait, lol.
Déjà à la compilation, je pense que tu dois avoir une erreur.
Ensuite, réfère-toi à la documentation :

id =trace(_root.var1);
"trace" est censé faire quoi pour toi ?
Et pourquoi pas directement id =_root.var1; ?
Tu as combiné deux instructions en une j'ai l'impression.
Tu voulais sans doute mettre :
trace(_root.var1);
id=_root.var1;

id.sendAndLoad("envoie_site.php?page=lec",id,"POST");}
Dans ton code, mets ton curseur texte sur "sendAndLoad" et tape F1, tu verras sur quoi peut se définir cette fonction.
Pour te donner un début :
var lv=new LoadVars();
lv.id=...
dapimp
Salut merci pour la piste que j'ai étudie avec attention mais me revoilà !
Donc mon code AS a évolué mais ne marche toujours pas, j'aurais encore besoin que tu éclaires ma lanterne...

le voici :

Action Script

var monEnvoi_lv = new LoadVars();
var monChargement_lv = new LoadVars();
monEnvoi_lv.score = _root.var1;
monChargement_lv.onLoad = function(success) {
if (success) {
}
};
monEnvoi_lv.sendAndLoad("envoie_site.php?page=lec", monChargement_lv, "POST");



oubien j'ai ca aussi :

Action Script

var lv=new LoadVars();
id=_root.var1;
loadVariables("envoie_site.php?page=lec+id="+ id );




Nelchaël
Le deuxième code n'est pas bien.
Le premier, ça peut être ça.
Pour ouvrir la page php dans une autre fenêtre et tester en affichant par exemple les valeurs reçues par php, tu peux temporairement mettre :
monEnvoi_lv.sendAndLoad("envoie_site.php?page=lec", "_blank", "POST");
Nelchaël
Pour le test que je te propose, j'ai omis de remplacer sendAndLoad par send.
monEnvoi_lv.send("envoie_site.php?page=lec", "_blank", "POST");
dapimp
Je viens d'essayer ton code mais rien n'y fait, quand je clique sur mon swf, rien ne bouge.

Action Script


var monEnvoi_lv = new LoadVars();
var monChargement_lv = new LoadVars();
monEnvoi_lv.score = _root.var1;
monChargement_lv.onLoad = function(success) {
if (success) {
}
};
monEnvoi_lv.send("envoie_site.php?page=lec", "_blank", "POST");




Quand j'exporte mon objet,il m'annonce les erreurs suivantes :

Statement must appear within on handler
Nelchaël
Le code ne doit pas être placé au bon endroit.
Mets-le dans ton "on (release) { /* code */ }" ou sur une image clé d'un calque.
dapimp
bon, ca avance un peu... mais la variable n'est pas transmise...
Quand je regarde dans le code source de ma premiere page php "var1=85" donc jusqu'ici pas de probleme,
avec le flash, j'ai fais des tests avec les codes-ci :

•(les deux ci-dessous affichent bien la deuxieme page php)

Action Script

on (release) {
var monEnvoi_lv = new LoadVars();
var monChargement_lv = new LoadVars();
monEnvoi_lv.score = _root.var1;
monChargement_lv.onLoad = function(success) {
if (success) {
}
};
monEnvoi_lv.send("envoie_site.php?page=lec", "_blank", "POST"); }



Action Script

on (release) {
var monEnvoi_lv = new LoadVars();
var monChargement_lv = new LoadVars();
monEnvoi_lv.score = _root.var1;
monChargement_lv.onLoad = function(success) {
if (success) {
}
};
monEnvoi_lv.send("envoie_site.php?page=lec", monChargement_lv, "POST"); }




•(les deux en dessous n'affichent meme pas la page)

Action Script

on (release) {
var monEnvoi_lv = new LoadVars();
var monChargement_lv = new LoadVars();
monEnvoi_lv.score = _root.var1;
monChargement_lv.onLoad = function(success) {
if (success) {
}
};
monEnvoi_lv.sendAndLoad("envoie_site.php?page=lec", monChargement_lv, "POST"); }



Action Script

on (release){
var lv=new LoadVars();
lv.id =trace(_root.var1);
id.send("envoie_site.php?page=lec", "_blank", "POST");}




Pour etre sur de recevoir la variable j'ai mis ma seconde page php comme ceci :

Action Script

<?php if(isset($_POST['monEnvoi_lv'])) {echo $_POST ['monEnvoi_lv'] ;} ?>1
<?php if(isset($_POST['monChargement_lv'])) {echo $_POST ['monChargement_lv'] ;} ?>2
<?php if(isset($_POST['monenvoi_lv'])) {echo $_POST ['monEevoi_lv'] ;} ?>3
<?php if(isset($_POST['monchargement_lv'])) {echo $_POST ['monchargement_lv'] ;} ?>4
<?php if(isset($_POST['var1'])) {echo $_POST ['var1'] ;} ?>5
<?php if(isset($_POST['id'])) {echo $_POST ['id'] ;} ?>6


Mais voila, je n'ai jamais recu cette variable ?


Nelchaël
Pour les codes 3 et 4, c'est normal qu'ils n'affichent pas la page.
Dans le 3, tu utilises "sendAndLoad", donc pas d'ouverture de page possible.
Dans le 4, tu mets "id.send", id ne correspond à rien, id.send n'est pas défini.

Concernant les deux premiers, la variable envoyée est "score" donc c'est plutôt ça que PHP devrait recevoir et non "var1" ni "id".

Pour PHP, mets simplement :

Action Script

<?php foreach($_POST as $i=>$st_) {echo $i." = ".$st_."<br>";}?>


Pour résumer :
Tu gardes le premier code et tu prends le code PHP que je t'indique.
Si ça fonctionne, tu pourras remettre l'instruction initiale :

Action Script

monEnvoi_lv.sendAndLoad("envoie_site.php?page=lec", monChargement_lv, "POST");
dapimp
ca marche enfin !
Je te remercie d'avoir pris le temps de m'aider !
C'est très sympa ce que t'as fais!
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.