我决定根据一天中的时间进行一次雄心勃勃的情绪改变。我需要得到时间,并将其与任何一天的日落和日出进行比较。
到目前为止,我在这里找到了一些运行良好的javascript。有人能告诉我如何将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如果在这之后,这是正确的吗?
非常感谢。。。
给定该片段,您将有两个变量,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上。我还使用了服务器的时间,这可能与客户端的时间完全不同。可能不会开箱即用,但应该让你开始。
我会使用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解析器。
https://developer.mozilla.org/en/AJAX/Getting_Started
这个问题没有答案,我最终在我的主机上安装了一个PHP模块和.dat文件。AJAX确实起了作用,但只是在我的网站上的一个页面被访问后-遗憾的是,这没有用。谢谢大家的帮助。。