异步传递客户端到服务器的值并返回到客户端
问题描述:
我一直在试图解决这个问题很长一段时间。我知道JavaScript是客户端脚本,PHP是服务器端脚本,但是可以将浏览器时代传递给PHP脚本来运行一些计算,然后根据结果返回geoJSON数据;全部是异步的?异步传递客户端到服务器的值并返回到客户端
我想传递给PHP脚本的功能是一样的东西:
function retreiveUTC() {
var now = new Date().getTime();
var browserUTC = Math.floor(now)/1000.0; // this returns epoch time of the browser
}
然后我想采取从功能产生了划时代的时间,并把它传递给PHP脚本,以确定哪些JSON文件返回。
比如我会驻留在服务器上的以下文件:
1352188536.JSON 1352187536.JSON 1352177536.JSON
我要检索的一个最接近的浏览器的划时代成果。先谢谢你。
更新下面的代码:
不知道我做错了,但我从Ajax调用成功获得,但返回的值是不确定的。
AJAX的东西:
$.post ('timezone.php',
{
epochTime: browserUTC
},
function (result) {
//do someting to result
}, "json");
var browserUTC = new Date().getTime();
$.post ('timezone.php',
{
epochTime: browserUTC
},
function (result,status) {
//display file name returned by PHP
alert(result.file + "\n" + status);
//console.log('test');
});
PHP:
<?php
$epochTime = round($_POST['epochTime']/1000);
$res= array();
$res['file'] = $epochTime . '.JSON';
return json_encode($res);
?>
答
我猜你是问有关异步请求。您可以发送一个AJAX请求到您的PHP脚本并获取相应的JSON数据并进行处理。你必须改变设计。
首先,当请求页面时,发送正常的数据(JSON除外),并且一旦JavaScript文件加载到客户端,您可以调用该函数,并且在函数结束时,只需使用AJAX请求将浏览器时间发送回另一个php脚本,该脚本将获取相应的JSON文件并提供给客户端。
使用jquery库以更简单的方式执行AJAX请求。
答
我相信这是通过标准的AJAX调用完成的。例如,如果你正在使用jQuery:
$.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
//do someting to result
}, "json");
在PHP脚本可以检索的出现时间像标准的POST变量的值:
$epochTime = $_POST['epochTime'];
//do required calculations
所以PHP有bult式json_encode功能,以帮助使JSON编码的字符串不在数组中。如果你传递一个数组,然后你可以检索的jQuery:以上
//PHP
$res= array();
$res['file'] = $epochTime . '.JSON';
return json_encode($res);
和jQuery的回调函数引用:
$.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
//display file name returned by PHP
console.log(result.file);
});
我能时代价值传递给PHP脚本并进行处理但'console.log(result.file);'显示未定义。我错过了吗?看起来PHP脚本没有返回值。谢谢。 –
这是因为需要将“json”参数添加到$ .post函数以进行正确的JSON处理。查看编辑后的代码。 – akhilless
这是假设将文件作为JSON对象返回还是仅返回文件名? –