JeuWeb - Crée ton jeu par navigateur
Transmission de variable a une iframe - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Transmission de variable a une iframe (/showthread.php?tid=4178)



Transmission de variable a une iframe - Sakura - 11-07-2009

Bonjour,

Je me suis lancer dans la conception d'un jjeu php (étant sur ce forum Wink ) type jdr et qui est pas mal avancer.

Pour différente raison j'ai été amener a utiliser des iframe. Le problème que je rencontre est le suivant:

Les variables de sessions n'étant pas transmise a a l'iframe de ma page je suis contraint d'utiliser un autre technique pour transmettre une donnée a mon iframe.

Après des recherche sur le web, j'ai tenter de transmettre ma variable via un formulaire caché placé juste après l'ouverture de <body> et d'un peu de javascript pour l'envoyer automatiquement au chargement de la page. Vous l'aurez devenier cela ne marche pas. Il me semble même que le code js soit ignorer. Je me tourne donc vers vous pour voir ce qui ne marche pas dans mon code voir proposer une solution tout a fais différente. La seul chose que je souhaite c'est que ma variable n'apparaisse pas dans l'url.

voici mon formulaire caché.

<form method="post" action="jeu/damier.php" target="main" id="matricule" onload="submit();">
<input type="hidden" id="'matricule" name="matricule" value="'.$info_joueur['matricule'].'" />
</form>';

merci d'avance pour votre aide


RE: Transmission de variable a une iframe - JauneLaCouleur - 11-07-2009

Il y a peut être un moyen de se passer de <iframe>. Ce qui simplifierais les choses.

Je sais que je suis ne pas d'une grande aide, mais bon...


RE: Transmission de variable a une iframe - Sakura - 11-07-2009

A la base ce n'était pas prévu d'en utiliser.

J'ai coder mon jeu en utilisant un structure model-view-controler (mvc). Ma page principale sert de "controler". a savoir, je réalise des teste sur une variable de sessions pour savoir quel model (partie calcul) et quel vue (partie affichage) le programme doit choisir pour répondre correctement a l'utilisateur.

Je comptais utiliser de petites images pour servir de liens et a l'aide de java script faire boucler sur la même page en changeant la dite varibale de session qui indique la page voulu par le joueur. Or je me suis rendu compte que cela n'était pas possible du simple fait que le php est executer coté serveur et le js coté client.

Du coup j'essaie d'opter par une formule avec des iframe. Ainsi pas de probleme de transmission de cette dite variable qui au passage n'a plus lieu d'être. La partie a afficher partout est sur la page de jeu et ce qui change ets afficher dans une iframe. Mais du coup les infos du joueur ne sont pas transmise a l'iframe. Bref contourne un probleme pour en soulever un autre ^^.


RE: Transmission de variable a une iframe - Sephi-Chan - 11-07-2009

Tu peux probablement passer des paramètres dans l'URL de ton iFrame :

<iframe src="page.php?parameter=value"><p>Le navigateur ne supporte pas les iFrames.</p></iframe>

Sinon, tu peux passer par Ajax si tu ne rechignes pas à nécessiter la présence de Javascript.

Cependant, si tu as réellement besoin de ce genre de chose pour fonctionner, c'est que ta mise en pratique de MVC est mal conçue. Je t'invite à regarder comment MVC est mis en pratique dans différents frameworks (Symfony et Ruby on Rails, par exemple).


Sephi-Chan


RE: Transmission de variable a une iframe - Sakura - 11-07-2009

Je doit reconnaitre que m'a mise en place de mon architecture mvc n'est pas forcement idéal. cependant la version avec iframe n'est pas en architecture mvc.

Pour le js, je compte le rendre nécessaire au fonctionnement du jeu. Mais vu que j'ai commencer a l'apprendre récemment et que j'ai pas mal de difficulté a l'appliquer je préfère ne pas me lancer de suite dans l'ajax qui me parait plus dure au vue des tuto que j'ai pu rencontrer.

J'ai trouver une solution plus simple pour résoudre mon probleme, les cookies. Mais j'aimerais savoir ce qui coince dans le bout de code que je vous ai montrer. Car même en mettant un onload="alert("test");" cela ne marche pas et que je compte en mettre de toute façon ailleur dans mon code. Qu'est ce qui fait que le js soit ignorer dans ce code ?