从Javascript文件到PHP页面发布IP和位置

时间:2017-05-03 13:48:42

标签: javascript php

我试图在填写后从表单中简单地收集用户的IP和位置。

这是使用freegeoip我的javascript文件的内容:

$(document).ready(function(){
$.getJSON("http://freegeoip.net/json/", function(data) {
    var country_code = data.country_code;
    var country = data.country_name;
    var ip = data.ip;
    var time_zone = data.time_zone;
    var latitude = data.latitude;
    var longitude = data.longitude;
});

$.get("http://freegeoip.net/json/", function (response) {
    $("#ip").html("IP: " + response.ip);
    $("#address").html("Location: " + response.city);
}, "jsonp");
});

这是我的html表单的内容

<form id="test" method="POST" name ="Login" action="post_ipadd.php">
<input name = "ip" id="ip" type="hidden" value=""></input>  
<input name = "address" id="address" type="hidden" value=""></input>
</form>

这是我的php的内容

$IP= $_POST['ip']; 
 $Address = $_POST['address']; 

然后检索它:

$email_message .= "IP Address: ".$IP. "\n";
$email_message .= "Location: ".$Address. "\n";

但是,如果我将表单中的输入字段设置为具有相同名称/ ID的div,我可以看到正确的IP地址和位置。但是我很难将这些值从javascript发布到我的PHP页面。

2 个答案:

答案 0 :(得分:0)

首先,您需要将输入修复为有效的HTML。

...| pv -qB 64k |...

然后你需要修改你的JavaScript以改变输入的<input name="ip" id="ip" type="hidden" value=""/> <input name="address" id="address" type="hidden" value=""/> 属性的值,如下所示 -

value

现在,当您提交表单$.get("http://freegeoip.net/json/", function (response) { $("#ip").val(response.ip); $("#address").val(response.city); }, "jsonp"); 时,$_POST['ip']应该会获得您想要的值。

答案 1 :(得分:0)

使用.val()使用jquery设置输入值。

此外,这两个请求是不必要的:

$(function(){

    $.get("http://freegeoip.net/json/", function(data) {

        $("#ip").val(data.ip);
        $("#address").val(data.city);

    });

};