我使用PHP函数来显示地理围栏。我想传递javascript变量到php函数在同一文件没有页面刷新。
function load(id,type){
if(type===2){
window.location.href="basic.php?idd=" + id; // i want to change code here
<?php
$cir = get_fence_by_type($_GET['idd']);
if($cir) {
foreach($cir as $row){
$fence_id = $row['geo_id'];
}
}
?>
PHP函数是:
function get_fence_by_type($id){
$query = "Select * from geofence where geo_id=".$id;
$result = pg_exec($query);
$d = array();
while($myrow = pg_fetch_assoc($result)) {
$d[] = $myrow;
}
return $d; //returns result in array
}
javascript window.location.href
将javascript值传递给php函数,但它也会重新加载页面
如果您使用jQuery,您可以使用$.ajax()
。它允许你发送数据到你的服务器,并对响应做一些事情。
,
$.ajax({
type: 'POST',
data: myvar
success: function(Response) { console.log(Response); }
});
将myvar
发送到您的服务器(当然有一点参数调整),并记录服务器发送回您的浏览器控制台的任何内容。
阅读你可以用jQuery做什么
您可以使用jQuery完成此操作。基本上你不刷新页面,你只是对服务器做一个异步查询然后你得到响应。在下面的示例中,响应显示在警报框中。
你的"索引"文件:
function load(id,type)
{
$.post("basic.php", { idd: idd }, function(data){
alert(data);
});
}
和basic.php
<?php
function get_fence_by_type($id){
$query = "Select * from geofence where geo_id=".$id;
$result = pg_exec($query);
$d = array();
while($myrow = pg_fetch_assoc($rs)) {
$d[] = $myrow;
}
return $d;
}
$cir = get_fence_by_type($_GET['idd']);
if($cir) {
foreach($cir as $row){
$fence_id = $row['geo_id'];
}
}
?>