我正在使用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函数,但它也会重新加载页面。
答案 0 :(得分:1)
如果您使用的是jQuery,则可以使用$.ajax()
。它允许您将数据发送到服务器并对响应执行某些操作。
例如:
$.ajax({
type: 'POST',
data: myvar
success: function(Response) { console.log(Response); }
});
会将myvar
发送到您的服务器(当然会稍微调整参数)并记录服务器发送回浏览器控制台的任何内容。
Have a read你可以用jQuery做什么。
答案 1 :(得分:0)
您可以使用jQuery执行此操作。基本上您不刷新页面,只需对服务器执行异步查询即可获得响应。在以下示例中,响应显示在警告框中。
您的&#34;索引&#34;文件:
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'];
}
}
?>