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 :

passer une variable de javascript vers php


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut passer une variable de javascript vers php
    Bonjour,

    Je souhaite ramener le contenu d'une variable obtenue via javascipt dans mon script php.
    Je veux rester dans le déroulement linéaire de mon php sans aller dans un autre script comme c'est le cas avec le paramètre "action" (du formulaire php tout cas )
    J'ai donc cherché sur internet mais les réponses s'adressent à des personnes qui ont déjà une bonne connaissance de javascript et de son vocabulaire, ce qui n'est pas mon cas. Je ne m'y retrouve pas.
    J'ai noté ci-dessous des "presque" solutions trouvées. Quelqu'un peut-il m'en déduire les lignes exactes à écrire (selon l'un ou l'autre des scénarios) et pour éviter quelque quiproquo sur les variables, on appellera var_js la variable qui est dans javascript et $var_php celle que je vais utiliser dans php.

    ** scénario 1
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $nb="<script>document.write(code.reponse);</script>";

    ** scénario 2
    Tu dois ajouter un ID pour le input (<input type='hidden' id='inputID'..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script> 
    var variable = 'valeur'; 
    document.getElementById('inputID').value = variable; 
    </script>
    Et pour récupérer: $_REQUEST["inputName"];

    ** scénario 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script> 
    document.write('<input type="hidden" name="info" value="' + mavariablejs + '">'); 
    </script> 
    <input type="submit" value="valider">
    Je vous remercie.

    Marcel Marie

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    [edit tapé trop vite ^^]
    javascript est executé coté client et php coté serveur, il n'y a pas 36 façon sde passe une variable js à php...

    tu ne peux pas encours de script php recupérer une variable javascript
    le php génère le code html javascript sur le serveur puis l'envoie au client
    coté client tu recupères l'info voulue dans une variable js mais il faut revenir sur le serveur:
    avec rechargement de page
    le formulaire en get ou en post,
    un rechargement de page en passant la variable dans l'url (get)
    sans rechargement de page
    un ajax
    un iframe caché
    éventuellement un src d'image
    après tout dépend de ce que tu veux faire avec cette variable ...

    Quel est le but final de la manoeuvre ?

    [/edit merci de me l'avoir fait remarquer]]
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut but du problème
    Bien lu votre réponse. Merci.
    Effectivement votre remarque, sur la non faisabilité de mon problème, est parfois mentionnée dans les réponses à une question semblable posée sur des forums.
    Donc dans certains endroits on dit : on ne peut pas, mais en cherchant davantage les trois scénarios mentionnés sont proposés par ailleurs et considérés comme opérationnels pour répondre à ma question.
    Ma méconnaissance de Javascript m'empêche cependant de comprendre la démarche proposée dans chaque scénario.

    La manipulation inverse, variable php envoyée à javascript étant ainsi proposée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var var_jvs=<?php echo($var_php) ?>;
    Ce qui me fait penser que le scénario 1 mentionné aurait une certaine logique, mais comment écrire précisément la ligne de ce scénario?. Je ne comprends pas cette façon de rappeler une variable javascript.

    Voici la raison de ma requête sur ce point.
    Je programme en php/xhtml où je suis d'un niveau satisfaisant, mais quelque chose a dû m'échapper.
    Je fais une saisie au moyen d'un formulaire assez compliqué qui, du fait probable de mon ignorance en JVS, est totalement contrôlé dans une procédure (appelée aussi programme ici dans ce texte) php lancé avec le paramètre action. Mais j'ai un cas qui pause souci et je suis amené à envoyer un "warning" à l'utilisateur qui a peut-être fait une faute de frappe. La méthode confirm() m'a semblé être une solution rapide et efficace pour ce faire puisque je ne connais que cette façon de procéder pour enchaîner séquentiellement du php à l'intérieur de mon programme.
    Il y a donc en fait, avec cette méthode confirm() , et compte tenu de mes connaissances actuelles, deux possibilités :
    * soit je récupère la variable true ou false issue de la réponse utilisateur et c'est cette réponse qui sera traitée par php : réafficher le formulaire ou continuer en séquence.
    * soit je suis en mesure, dans la séquence JVS qui contient la réponse de relancer le formulaire de saisie, qui est une fonction php avec des paramètres. Et alors comment?
    La première alternative me paraissant plus adaptée ?

    Bien entendu je suis preneur de toute autre solution qui pourrait m'être proposée pour ce faire.

    Merci d'avoir eu la patience de lire ma longue explication.

    Marcel Marie

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    il faut que tu comprenne la chronologie et la portée de chacun des langages

    php s'execute coté serveur, c'est lui qui redige le code html css javascript ...
    une fois le code redigé la page est envoyée au client
    ce qui permet en effet de passer une varaible php à js car en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var var_jvs="<?php echo($var_php)" ?>;
    lorsque la page est envoyée au client, php a en fait redigé le code js et le client reçoit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var var_jvs='contenu de la variable php';
    Ce qu'il faut savoir également est que le serveur ne peut rien envoyer au client si une demande préalable n'as pas été faite.
    C'est donc la page du client qui initie une demande au serveur.
    Tu semble vouloir lancer une demande au serveur sans rechargeùent de page. Une verification en cours de saisie.
    Je te conseille vivement de te pencher sur la technologie aja (xmlhttprequest) qui permet de converser avec le serveur sans rechargement de la page active.
    la reponse du serveur sera soit sou forme de string ou de xml ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Pour info, voici un article en cours de rédaction qui te permettra (j'espère ) de mieux comprendre le processus. Il n'est pas fini, mais la partie communication JavaScript / PHP est présente.
    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

  6. #6
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut réponse à Bovino
    Bonsoir, je vais tenir compte de tout cela
    Il faut cependant toujours voir le côté positif des choses surtout quand je lis dans votre article : Il est donc possible de transmettre des représentations textuelles des variables JavaScript à PHP (voire de les réintégrer dans la nouvelle page).

    Ce serait justement ce dont j'ai besoin et pour ce faire un "petit script" adéquat serait le bienvenu et provoquera un GRAND MERCI à SON AUTEUR.

    Merci donc par avance.
    (je constate avec plaisir que même un dimanche des personnes sont là pour aider les autres. Bravo)
    Marcel Marie

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ben, c'est expliqué, il faut rajouter le paramètre dans l'URL pour le récupérer dans le $_GET en PHP.
    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 actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut encore pour BOVINO
    Bonjour,
    Je suis désolé mais je ne comprends rien à cette histoire d'URL.
    J'ai beau consulter livres et doc Javascript, je ne trouve rien de clair ou tout au moins qui, pour moi, soit clair.
    Les exemples trouvés jusqu'à présent utilisant un formulaire n'abordent jamais le cas concret, sur exemple, de récupération dans php des données du formulaire.
    Je suis persuadé que les scénarios 2 et 3 cités dans ma première requête sont pourtant proches d'un vrai résultat puisque leurs auteurs disent que ça fonctionne. Il m'aurait sans doute suffi d'un détail explicatif pour les comprendre et les appliquer.
    Je crains cependant que le fait de parler d'URL, sans doute la valeur du paramètre action, ne signifie qu'il faut aller traiter les données dans un autre script, ce que je ne souhaite pas.
    BREF, j'ai trouvé une solution purement PHP qui fonctionne dans mon cas mais qui n'est pas totalement satisfaisante intellectuellement car ce n'est pas un module généralisable.
    Je ferme donc le sujet.
    Merci pour tout.

    Marcel Marie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/05/2013, 21h28
  2. Passer des variables de flash vers php?
    Par Dev@lone dans le forum Flash
    Réponses: 1
    Dernier message: 12/03/2008, 09h43
  3. Réponses: 2
    Dernier message: 22/02/2007, 14h00
  4. Réponses: 3
    Dernier message: 03/02/2005, 13h07

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