我试图在填写后从表单中简单地收集用户的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页面。
答案 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);
});
};