[PHP/JavaScript] Transmission de variables [Fermé]

Signaler
-
 deissy -
Bonjour tout le monde,
est ce que vous pourriez m indiquer comment retourner une variable d'une fonction javascript dans une variable php?
Merci bcp

14 réponses

OUi je sais je suis un peu retardataire mais je vais essayer de participer et voici en quelque sorte ce que je vous propose:

CE QU'IL FAUT SAVOIR!

- premièrement pour faire style web 2.0 je me suis basé sur ajax (uniquement XMLHttpRequest)
- le code de "convertion variable jvs - php" se trouver dans une fonction, un simple appel vous permettra alors de "convertir" votre variable jvs en php
- la variable utiliser se nommera "x" sachez qu'el peut provenir d'un formulaire, d'une fonction ou d'ailleur .. l'avantage aussi est que le navigateur ne se trouvera pas gelé...bien voici mon code:

<script type="text/javascript">

var x = 4;

function convertion(x){
/*là on utilise le coté ajax de javascript si vous ne comprenez pas ces lignes c'est pas bien graves, elles changent presque jamais donc copier comme ça*/

var xhr;
try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e)
{
try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2)
{
try { xhr = new XMLHttpRequest(); }
catch (e3) { xhr = false; }
}
}
//le bloc suivant, je l'ai mis juste au cas où..mais ici on peut s'en passer
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{}}/*comme vous pouvez le constater ce bloc ne sert à rien, mais certains l'utiseront certainement en fonction du resultat voulu*/
/*maintenant on va envoyez notre variable x à php, le fichier reponse.php est le fichier où votre variable x converti est censé être affichée*/
xhr.open("POST","reponse.php",true);
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
/* si votre variable vient d'un formulaire voici le code que vous utiliserez ceci:
var formid=document.getElementById('Id_de_votre_formulaire');
var formid2= formid.[name_du_tag_de_votre_formulaire].value
*/
// voici la partie qui nous interesse tous, on va envoyer la variable xvers php
xhr.send("varx="+x);
/* si vous utiliser un formulaire faites plutôt xhr.send("varx="+formid2);*/
</SCRIPT>

Voici notre fichier reponse.php

<?php

if (isset($_POST["varx"])){
$varx_recup=$_POST["varx"]
echo 'php a récupéré votre variable x';
echo $varx_recup;
}
?>

ce code doit avoir quelque imperfection, je l'ai posté à la hate alors ajouté des virgules s'il le faut et testez le, Il marche et j'utilise un code semblable depuis bien longtemps déjà pour la bonne raison que les variables sont convertit dynamiquement et sans que le navigateur ne semble bloqué....voilà j'esper avoir aidé certain, le code semble long mais en réalité il ne l'est pas.
12
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
251
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 juillet 2012
52
C'est un CHEF D'OEUVRE !!!!

Je n'ai jamais rien lu d'aussi puissant et l'illustration en couverture est digne de Picasso. Sans toi je n'aurai jamais connu le bonheur.

MERCI !
Messages postés
1508
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
266
:-D mdr

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
Messages postés
1508
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
266
Je vois comment faire pour passer une variable JavaScript en variable PHP en changeant de page, en la passant par exemple dans le champ 'hidden' d'un formulaire ou directement par l'URL.

Par contre au sein d'une même page, c'est déjà moins marrant...
Messages postés
35
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004
4
je crains que tu ne puisse pas faire ce genre de passage de variable
(perso je n'y suis jamais arrivé)
Messages postés
251
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 juillet 2012
52
Il me semble, mais je ne suis absolulent pas sûre de moi, que j'ai déjà lut quelque part que c'était faisable.

Je ne suis pas encore un expert en javeScript mais c'est peut-être faisable en passent la variable par une URL, seulement si cela fonctionne un changement de page est obligatoire ce qui est contraignant mais faisable.
Messages postés
251
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 juillet 2012
52
Pas besoin d'un formulaire, tu met toi même le ?nom_var=$var
au bout de ton url.
Messages postés
1508
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
266
C'est bien pour ça que j'ai écrit "ou directement pas l'URL"!

:-D

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
Messages postés
251
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 juillet 2012
52
Font-il des cour de lecteur sur ce site,
J'en aurai grand besoin. ;o)
Messages postés
1508
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
266
Tiens je te conseille cet ouvrage:
http://perso.wanadoo.fr/jmw93/Jaime%20Lire/Jaime%20Lire%2030%20R.jpg

:-DDD

Que de souvenirs ...

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
peut-etre comme ceci ?
$var_php = "<SCRIPT LANGAGE=JavaScript>document.write(var_js)</SCRIPT>";
il ne reste plus qu'à convertir la variable par exemple en int si c'est un nombre mais je ne sais pas comment on fait (et si c'est possible ?)
Messages postés
1508
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
266
Ça, ça ne transmettra pas une variable générée lors d'une fonction JavaScript à une variable PHP, car le PHP est exécuté lors de la génération de la page, et la fonction JavaScript, après, lors de l'affichage de la page chez le client.


.::: "A trop vouloir feindre de faire fi, on finit
par faire fi de vouloir feindre."
:::.
salut,

une soluce : tu passe ta variable javascript dans un cookie.
après tu n'as plus qu'à travailler avec ce cookie via $_COOKIE[idcookie]
et comment accomplir ce miracle?
Ca fonctionne, sujet interessant à clore!
Hé merci enfin quelque chose d'utile!!! Vous m'avez sauver la vie !!! :D
Salut!
Le plus simple c'est d'utiliser les cookies, car ca marche très bien avec une requête GET mais l'utilisateur peut changer la valeur dans l'URL. J'utilise une technique un peu bizarre de l'avoue mais qui fonctionne très bien:

---- index.php -----

<?php
  if (!isset($_COOKIE['timezone'])) {
?>
<html>
<script language="javascript">  
  var d = new Date(); 
  var timezoneOffset = d.getTimezoneOffset() / 60;
  // the cookie expired in 3 hours
  d.setTime(d.getTime()+(3*60*60*1000));
  var expires = "; expires="+d.toGMTString();
  document.cookie = "timezone=" +  timezoneOffset + expires + "; path=/";
  document.location.href="index.php"
</script>
</html>
<?php
} else {
  ?>

<html>
<head>
<body>
<?php 
  if(isset($_COOKIE['timezone'])){ 
    dump_var($_COOKIE['timezone']); 
  } 
}
?>

// contenu de index.php

oups je sais pas pourquoi mais il manque la fin du code:

</body>
</html>
<?php
}
?>
vous cassez pas la tête c'est simple


<script type="text/javascript"> 

var test = 1;

</SCRIPT>

<?php

$php ='<script
type="text/javascript">document.write(test)</SCRIPT>'; 

echo $php;
?>



Et voilà, ca convertit la variable test du javascript en la variable $php en php
Messages postés
488
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
6 janvier 2013
73
Je ne voudrais pas avoir l'air de pinailler, mais à mon sens, ton instruction ne fait que demander à javascript d'écrire sa valeur, elle ne s'en empare pas.

de fait
    $test + 1
ne donnera pas 2.
Pas plus que
intval($test) + 1
Par contre
document.location="$PHP_SELF?test=1"
placé en début de page
nous offre la possibilité :
$_GET['test']+$add


"La génétique nous offrira peut-être un jour la possiblité d'additionner des patates et des carottes, mais pas les mathématiques..."
général Cluster

A+
>
Messages postés
488
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
6 janvier 2013

Bonjour,

Pourquoi je n'ai rien compris... lol

j'essaie de faire un truc bien compliqué, c'est à dire que je veux stocké des données obtenu par le javascript dans un cookie, je n'arrive absolument pas obtenir un résultat, j'ai essayé tout vos code, mais en vain. si quelqu'un peut m'aider.

Mon code javascript ressemble à ça :

<script language="JScript" type="text/jscript">

var ShellWSH=document.getElementById("ShellWSH");

function RegRead()
{
document.ecran.prenom.value = ShellWSH.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Logon User Name");
}
</script>

Si quelqu'un peut m'aider, je sais que je viens un peu brusquement sur le tuto, mais je cherche partout, et ici j'ai l'impression d'être tombé sur des connaisseurs.

Cdlt