从$ .get中保存Javascript变量中的值,并在PHP变量中使用它

时间:2015-04-20 11:31:08

标签: javascript php jquery variables

我使用javascript获取了我网站上访问者的一些基本信息。

var userinfo = "";
//printing user info
$.get("http://ipinfo.io", function (response) {
  alert("IP: " + response.ip);
  alert("Location: " + response.city + ", " + response.region);
  alert(JSON.stringify(response, null, 4));
  userinfo = (JSON.stringify(response,null,4)); //saving json in js variable (not working, it says undefined)
}, "jsonp");

然后我想在我的PHP变量中访问这个值:

 <?php
echo $getuserinfo ; // How to store JS var here in this php var?
 ?>

JS变量值没有被保存,我做错了什么? 如何在JS变量中存储JS变量值?

3 个答案:

答案 0 :(得分:1)

您可以创建一个stat page / api,您可以通过javascript进行ajax调用。

$.ajax({
 type: "POST",
 url: '/setstats.php',
 data: {userdata: userinfo},
 success: function(){
  console.log("Userdata send");
 },
 dataType: "json"
});

这将首先在页面初始加载时提供,但您现在可以将其保存在会话中以供下次请求使用。

答案 1 :(得分:1)

您正在使用jQuery.get方法。

此方法支持名为Data

的参数
data
Type: PlainObject or String
A plain object or string that is sent to the server with the request.

将它发送到服务器http://ipinfo.io后,它在$_GET数组中的被调用脚本(index.php或默认情况下)中可用。

如果您发送data: {var1: value1, var2: value2},则会$_GET["var1"] and $_GET["var2"]

只需发送data: userinfo并在php中执行var_dump($_GET)并检查您的内容

答案 2 :(得分:1)

所以我通过使用PHP的PHP版本来解决它:

  function ip_details($ip) {
   $json = file_get_contents("http://ipinfo.io/{$ip}");
   $details = json_decode($json);
   //echo $ip;
   return $details;
   }
  $details = ip_details($userIp);

感谢大家。