【问题标题】:When does Javascript function execute? php variables are not changing passed in argumentsJavascript函数什么时候执行? php 变量没有改变传入的参数
【发布时间】:2014-06-18 22:33:47
【问题描述】:

我有一个从 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 吗?

【问题讨论】:

  • 当然,页面的那部分是用 PHP 在创建 sn-p 时为 $lat$lon 提供的值呈现的。你想完成什么?
  • 您期待什么? $s=0; echo $s; $s=10; 你会期待 10 个吗?是的,您可以稍后调用addDomListener,或者最好在输出任何内容之前执行所有 php 业务逻辑

标签: javascript php jquery google-maps google-app-engine


【解决方案1】:

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

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

【讨论】:

  • 是的,但与这个问题无关 - 他的问题更直接,因为他在为他的 php 变量设置正确值之前输出了 javascript
  • 这很有意义 - 我将其切换为在前一页上给我纬度/经度,现在在页面加载之前获得了我需要的值
【解决方案2】:

Echo 将变量的当前值放入响应中。更改该变量不会对 JavaScript 产生影响,因为它正在获取回显的内容。

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 2018-11-13
      • 2010-11-03
      • 2018-06-02
      相关资源
      最近更新 更多