web-dev-qa-db-fra.com

Comment obtenir une valeur de variable JavaScript dans PHP

Je veux la valeur de la variable JavaScript à laquelle je pourrais accéder en utilisant PHP. J'utilise le code ci-dessous mais il ne retourne pas la valeur de cette variable en PHP.

// set global variable in javascript
    profile_viewer_uid = 1;

// php code

$profile_viewer_uid=$_POST['profile_viewer_uid']; 

cela me donne l'erreur suivante: -

A PHP Error was encountered
Severity: Notice
Message: Undefined index: profile_viewer_uid

J'ai utilisé un autre code php qui donne une valeur vide

$profile_viewer_uid = "<script language=javascript>document.write(profile_viewer_uid);</script>

Quand j'écho, ça ne montre rien. 

20
rash111

Vous devrez utiliser JS pour renvoyer l'URL avec une variable telle que: http://www.site.com/index.php?uid=1

en utilisant quelque chose comme ceci dans JS:

window.location.href=”index.php?uid=1";

Ensuite, dans le code PHP, utilisez $ _GET:

$somevar = $_GET["uid"]; //puts the uid varialbe into $somevar
16
Chris Cummings

Voici l'exemple de travail: Obtenir la valeur de la variable javascript sur la même page.

<script>
var p1 = "success";
</script>

<?php
echo "<script>document.writeln(p1);</script>";
?>
12
Arslan Tabassum

Ajoutez un cookie avec la variable javascript à laquelle vous souhaitez accéder.

document.cookie="profile_viewer_uid=1";

Puis y accéder en php via

$profile_viewer_uid = $_COOKIE['profile_viewer_uid'];
7
humbleiam

Vous voudrez peut-être commencer par apprendre ce que sont Javascript et php. Javascript est un langage de script côté client s'exécutant dans le navigateur de la machine du client connecté au serveur Web sur lequel php s'exécute. Ces langues ne peuvent pas communiquer directement.

Selon votre objectif, vous devrez envoyer une demande AJAX get ou une demande au serveur, renvoyer un json/xml/html/quelle que soit la réponse souhaitée et réinjecter le résultat dans la structure DOM du site . Je suggère Jquery, BackboneJS ou tout autre framework JS pour cela. Voir la documentation de Jquery pour des exemples.

Si vous devez transmettre des données php à JS sur le même site, vous pouvez les répercuter en tant que JS et transformer vos données php à l'aide de json_encode () en JS.

<script type="text/javascript>
    var foo = <?php echo json_encode($somePhpVar); ?>
</script>
5
burzum

Si vous souhaitez utiliser une variable js dans un script php, vous devez la transmettre dans une requête HTTP. 

Cela peut être facilement fait en changeant ou en rechargeant la page (par exemple en soumettant un formulaire ou en faisant une redirection avec js, comme dans Chris answer ).

Toutefois, si vous ne souhaitez pas recharger la page, vous devez utiliser AJAX , conçu précisément pour accéder aux serveurs Web à partir d'une page Web, sans recharger/modifier la page.

Un exemple simple peut être:

var profile_viewer_uid = 1;
$.ajax({
  url: "serverScript.php",
  method: "POST",
  data: { "profile_viewer_uid": profile_viewer_uid }
})

Et dans le fichier serverScript.php, vous pouvez faire:

 $profile_viewer_uid = $_POST['profile_viewer_uid'];
 echo($profile_viewer_uid);
 // prints 1

Remarque: dans cet exemple, j'ai utilisé jQuery AJAX , qui est plus rapide à implémenter. Vous pouvez aussi le faire en js pur.

2
T30

PHP fonctionne sur le serveur. Il produit du texte. Ensuite, il cesse de courir. 

Le texte est envoyé au client (un navigateur). Le navigateur interprète ensuite le texte en HTML et JavaScript.

Si vous voulez obtenir des données de JavaScript vers PHP, vous devez alors créer une nouvelle requête HTTP et exécuter un nouveau script (ou identique) PHP.

Vous pouvez faire une requête HTTP à partir de JavaScript en utilisant un formulaire ou Ajax.

2
Quentin

Ce sont deux langues différentes, qui fonctionnent à une heure différente - vous ne pouvez pas interagir avec elles de cette façon.

PHP est exécuté sur le serveur pendant le chargement de la page. Une fois chargé, le JavaScript s’exécutera sur la machine cliente du navigateur.

1
BenOfTheNorth

Cela peut être un peu délicat, mais le moyen le plus sûr est de définir un cookie javascript, puis de le sélectionner à l'aide d'une variable cookie php. utiliser javascript et rediriger la page vers elle-même . Étant donné que vous avez ajouté une commande php pour intercepter la variable, vous l'obtiendrez.

0
Jatin Patro