我决定根据一天中的时间做一个雄心勃勃的情绪变化。我需要花时间将它与任何一天的日落和日出进行比较。
到目前为止,我发现了一些效果很好的javascript here。谁能告诉我如何将lat和long赋予PHP函数date_sunset?我使用$_SERVER['REMOTE_ADDR']
在PHP变量中使用IP,但这就是我所拥有的。我不能做太多其他事情,因为我从未使用过该函数,也从未试图将PHP和JS结合起来。有什么想法吗?
- 更新 -
我一直在尝试使用jQuery $ .ajax函数。这是我的代码;
<script language="JavaScript">
var lat = geoip_latitude();
var long = geoip_longitude();
$(document).ready(function(){
//var url = 'http://www.ransomedesign.co.uk/web/?lat=' + lat + '&long='+ long;
// $.get(url);
$.ajax({
type: "GET",
data: { lat:lat, long:long},
url: "http:www.ransomedesign.co.uk/web/",
success: function() { alert("you win"); }
})
});
</script>
有两种不同的方法。 (第一个被注释掉)。这会填充我的$ _SERVER php代码,但仅限于我网站页面的第二个请求。我真的需要这个在第一次访问之前处理任何加载。在此之后,该值将存储在会话中,php将完成其余的工作。
任何人都可以看到这段代码有什么问题,或者为什么它不会马上工作?我的php如果在此之后,这是正确的吗?
非常感谢......
答案 0 :(得分:0)
鉴于那里的代码段,您有两个变量,geoip_latitude
和geoip_longitude
。获取这些变量,将它们放入对服务器的AJAX调用中,然后进行计算:
HTML:
<div id="sunset"></div>
<script>
$('#sunset').load('/path/to/script.php?lat=' + geoip_latitude + '&lon=' & geoip_longitude);
</script>
PHP:
<?php
$lat = $_GET['lat'];
$lon = $_GET['lon'];
echo date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $long);
这假设你已经加载了jquery /可用,并且服务器是在PHP v5上的。我也在使用服务器的时间,这可能与客户完全不同。可能不会开箱即用,但应该让你开始。
答案 1 :(得分:0)
我会使用AJAX。您使用GeoIP JavaScript,因此首先获得lat
和long
:
var lat = geoip_latitude () ;
var long = geoip_longitude () ;
然后将其发送到服务器脚本,例如mood.php
:
var xhr = new XMLHttpRequest () ;
xhr . onreadystatechange = function ()
{
if ( xhr . readyState == 4 && xhr . status == 200 )
{
// do something with server response
}
}
xhr . open ( "POST", "mood.php", true ) ;
xhr . setRequestHeader ( "Content-type", "application/x-www-form-urlencoded" ) ;
xhr . send ( "lat=" + lat + "&long=" + long ) ;
和mood.php可能看起来像:
<?php
$lat = $_POST [ "lat" ] ;
$long = $_POST [ "long" ] ;
echo "something depending on lat and long" ;
?>
修改。
如果服务器发送响应,您可以通过调用xhr . responseText
:
xhr . onreadystatechange = function ()
{
if ( xhr . readyState == 4 && xhr . status == 200 )
{
alert ( "Server response: " + xhr . responseText ) ;
}
}
如果服务器发送XML内容,那么您可以调用xhr . responseXML
- 它会触发本机XML解析器。
答案 2 :(得分:0)
这个问题没有答案,我最终得到了一个PHP模块和.dat文件安装在我的主机上。 AJAX确实有效,但只有在访问了我网站的一个页面之后 - 这是不可悲的。感谢大家的帮助..