IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mettre une valeur dans une variable php


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut Mettre une valeur dans une variable php
    Bonjour,

    J'essaye dans mon code de mettre une valeur à une variable php en utilisant un script javascript mais je n'y arrive pas . Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <script> 
     
     	if (window.name == 'Opener_Form') 
     	{
     	 	alert('1');
     		 <?php $Opener = "self.opener.opener"; ?> 
     	}
     	else 
     	{
     		alert('2');
     		 <?php $Opener = "self.opener"; ?>  
     	}
    </script>
    <?php
       echo $Opener;
    ?>
    Le but étant de récuperer la valeur de $Opener et de l'utiliser dans mon code php, mais $Opener prend toujours la valeur "sel.opener" bien que le code peut passer dans la condition if. Peut-etre faut-il proceder autrement ?

    Merci pour votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    nan mais php te génère une page html. C'est juste pas possible d'affecter une variable js dans une variable php.

    Tes fichiers php sont sur un serveur. Ton js, il est exécuté sur ton client.
    Si tu veux récupérer la valeur de self.opener, il faut que tu appele une page php avec en arguments (get ou post) la valeur de ta variable js

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    En effet galerien a raison : ce que tu décris implique une conception erronée de l'échange client-serveur, c'est matériellement impossible tel quel.
    A partir du moment où le code JS s'exécute, sur le navigateur du client, donc, il y a deux manières de répercuter des informations vers le serveur : une requête de page ou une requête AJAX ^^

  4. #4
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    J'avais ajouté ça à la fin de mon code et essayé de récupérer la valeur dans un GET ($_GET['idOpener'] mais je n'y suis pas arrivé non plus .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	<script> 
     
     	if (window.name == 'Opener_Form') 
     	{
     		 document.getElementById('divOpener').innerHTML = "<input type='hidden' name='idOpener' value='self.opener.opener'>"; 
     	}
     	else 
     	{
     		document.getElementById('divOpener').innerHTML = "<input type='hidden' name='idOpener' value='self.opener'>"; 
     	}
    </script>

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Ca avait autant de chances de fonctionner que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script>
    var supplique = "Alleeeeez s'il te plait c'est très important pour moi que tu ailles jusqu'au serveur !";
    supplique.persuasion = MAX;
    supplique.politesse = MAX;
    supplique.vasYAPied();
    </script>


    (soit dit sans moquerie ^^ juste pour dire que ce n'est pas un problème de code JS)

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    @Romain : +1 parce que je me suis bien marré ^^
    Chaque fois que quelqu'un parle de supplique, j'ai la chanson de Brassens dans la tête

    @Macdelay : Faut savoir que le seul format de données qui passe à travers la tuyauterie Internet, c'est du texte brut. Ou des chaînes de caractères, si tu préfères.
    Le code source d'une page HTML ? Du texte.
    JavaScript ? Du texte.
    Les paramètres d'une requête (get ou post) ? Du texte.
    Même quand tu auras réussi à communiquer avec ton serveur, tu ne pourras pas lui passer des objets JavaScript directement. Va falloir inventer une solution

    Ceci étant dit, voici un petit coup de pouce. C'est un exemple composé de deux pages, une page HTML qui joue l'acte I côté client, et une page PHP qui joue l'acte II côté serveur.

    acte1.html :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <a href="acte2.php" id="lien">cliquez ici</a>
     
    <script type="text/javascript">
    var x = 12;
     
    document.getElementById('lien').onclick = function() {
            location.href = this.href + '?x=' + x;
            return false;
    }
    </script>

    J'ai mis x = 12 pour simplifier l'exemple, mais imagine que cette variable peut changer de valeur.

    acte2.php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    var_dump($_GET['x']);
    ?>
    Tu constateras que le type est string, rapport à ce que j'ai dit juste avant.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Enfin là, ce que veut apparemment mcdelay, ce serait plus de récupérer dans le code PHP qui construit la page le résultat d'un traitement JavaScript...
    mcdelay, il faut bien comprendre que lorsque PHP crée le HTML, la page n'existe pas, donc tu ne peux en aucun cas récupérer le résultat d'actions utilisateur.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Merci pour toutes ces précisions (en plus si j'ai pu en faire marrer plus d'un ;-)).
    En fait le but de cela est de pourvoir attribuer une valeur (self.opener ou self.opener.opener) à une variable que l'on peut appeler "opener" à la construction de ma page, qui est défini comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TD  align='center' title = 'Cliquer cette case pour visualiser les parcelles aménagés sur la carte'
    	onclick = opener.chgStateGroupes('123=1');				    opener.chgStateGroupes('120=1');					    opener.chgStateGroupes('171=0');					    opener.chgStateGroupes('148=0');					    opener.chgStateAnalyse('5','1');					opener.findAll('123.8',true,'stroke');					    window.open('http://sig.valenciennes-metropole.intra/OutilsCAVM/Foncier_Occupation/Fiche_ZA.php?txt_id=8','_blank','toolbar=0,menuBar=0');"   
        onmouseover = opener.GestEvtDyn.lanceEvenement('SETHIGHLIGHT','123.8');
         onmouseout = opener.GestEvtDyn.lanceEvenement('RMHIGHLIGHT','123.8');>
    6 305
    </TD>
    Je peux acceder à cette page depuis plusieurs fenêtre (deux) soit un lien direct (self.opener) soit par une fenetre intermédiaire (self.opener.opener).

    Donc comment pourrais-je faire pour attribuer la bonne valeur à opener ?

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Mettre la valeur d'une combobox dans une feuille Excel
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/10/2008, 13h56
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19
  5. Mettre la valeur d'une table dans une CString
    Par Lucier dans le forum MFC
    Réponses: 29
    Dernier message: 26/11/2004, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo