什么时候Javascript函数执行? php变量没有改变在参数中传递

时间:2014-06-18 22:33:48

标签: 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,
    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;

使用参数0,0

调用该函数

我可以稍后调用addDomListener吗?

3 个答案:

答案 0 :(得分:1)

Javascript是一种客户端语言。 PHP是一种服务器端语言。您不能在一次运行中使用Javascript在同一脚本中将参数传递给PHP。对于您要执行的操作,您希望AJAX使用Javascript DOMListener触发的内容调用PHP文件。

为了回答你的问题,Javascript在浏览器加载的瞬间“运行”,而PHP在服务器读取时被解析(因此,之前浏览器获取并解析输出)。

答案 1 :(得分:0)

Echo将变量的当前值放入响应中。更改该变量对JavaScript没有任何影响,因为它正在获得回显的内容。

JavaScript在页面呈现给浏览器后运行,无论服务器上构建了什么值。

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

答案 2 :(得分:0)

您是否尝试过浏览Google教程? https://developers.google.com/maps/articles/phpsqlajax_v3

在我提供的链接中,它将向您展示如何首先将标记保存到XML文档,然后根据需要使用它。如果您需要更多说明,可以在那里提供更多链接。我发现Google地图甚至还有很好的文档和教程。