Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数何时执行?php变量未更改传入的参数_Javascript_Php_Jquery_Google Maps_Google App Engine - Fatal编程技术网

Javascript函数何时执行?php变量未更改传入的参数

Javascript函数何时执行?php变量未更改传入的参数,javascript,php,jquery,google-maps,google-app-engine,Javascript,Php,Jquery,Google Maps,Google App Engine,我有一个从php获取参数的javascript函数 javascript函数在页面加载后执行 我在php变量上设置初始设置 设置我的javascript函数 做一些php魔术,重新分配我的php变量 当我的javascript函数加载时,它使用的是我的初始值,而不是上次分配的值 $lat = 0; $lon = 0; <script> var map; function initialize(lat,lon) { var mapOptions = { zoom: 8,

我有一个从php获取参数的javascript函数

javascript函数在页面加载后执行

我在php变量上设置初始设置

设置我的javascript函数

做一些php魔术,重新分配我的php变量

当我的javascript函数加载时,它使用的是我的初始值,而不是上次分配的值

$lat = 0;
$lon = 0;
  <script>
var map;
function initialize(lat,lon) {
  var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(lat,lon)
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
}

google.maps.event.addDomListener(window, 'load', function () { initialize(<?php echo $lat ?>,<?php echo $lon ?>); });

    </script>


$lat = $newvallat;
$lon = $newval;
$lat=0;
$lon=0;
var映射;
函数初始化(横向、纵向){
变量映射选项={
缩放:8,
中心:新google.maps.LatLng(lat,lon)
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
}
google.maps.event.addDomListener(窗口'load',函数(){initialize(,);});
$lat=$newvallat;
$lon=$newval;
使用参数0,0调用该函数


我可以稍后调用addDomListener吗?

Javascript是一种客户端语言。PHP是一种服务器端语言。不能在一次运行中使用Javascript在同一脚本中向PHP传递参数。对于您试图做的事情,您希望AJAX调用一个PHP文件,其中包含Javascript DOMListener正在启动的内容


为了回答您的问题,Javascript在浏览器加载时立即“运行”,而PHP在服务器读取时进行解析(因此,在浏览器获取并解析输出之前,

Echo将变量的当前值放入响应中。更改该变量不会对JavaScript产生任何影响,因为它会得到所响应的内容

JavaScript在页面呈现给浏览器之后运行,不管服务器上构建了什么值


你可以使用Ajax来获得你想要的效果。

你有没有试过浏览谷歌教程


在我提供的链接中,它将向您展示如何先将标记保存到XML文档中,然后根据您的意愿处理它。如果您需要更多说明,这里会提供更多链接。我发现Google maps甚至有很好的文档和教程。

当然,在创建代码片段的瞬间,页面的这一部分显示了PHP对
$lat
$lon
的值。你想完成什么?你期望什么<代码>$s=0;echo$s$s=10你期望10个吗?是的,您可以稍后调用
addDomListener
,或者最好在输出任何东西之前执行所有php业务逻辑True,但与此问题无关-他的问题更直截了当,在为php变量设置正确的值之前,他会输出javascript。这很有意义——我在上一页上切换了javascript以获得lat/lon,现在在加载页面之前获得了所需的值