将位置变量从Javascript传递到PHP函数

时间:2012-09-05 18:57:07

标签: php javascript web

我正在使用HTML5地理定位和Javascript来使用Google的API进行反向地理位置查找,以获取用户所在的城镇。这一切都很好,我将城市/城镇存储在名为city.short_name的JavaScript变量中。

现在,我正在使用wordpress,我正在尝试使用以下方法修改我网站的部分内容:

document.getElementById('contenttochange').innerHTML = <? echo do_shortcode('[<code here>]'); ?>;

现在,如果内容始终相同,即

<? echo do_shortcode('[just_do_this]'); ?>

没关系,但不幸的是我需要将城镇添加为名为search的参数。例如。

<? echo do_shortcode('[just_do_this search="thetownofuser"]'); ?>

所以,基本上,一旦我找到了城镇并将其作为变量,我是否有任何简单的方法来执行PHP短代码与该城镇作为参数来替换我希望的内容?

1 个答案:

答案 0 :(得分:1)

PHP是服务器端超文本预处理器(实际上是首字母缩略词“PHP”的根源)。你不能从javascript执行PHP,因为PHP不是“活跃的”,只能用一个词来表示。

您将数据作为request发送到运行PHP的服务器,它通过PHP处理,然后输出XHTML。所有这些<??>在被发送到客户端之前都会被呈现到它们的输出中。

客户端仅处理XHTML和Javascript(除其他事项外,为了简单起见)

您可以将变量回显到您的javascript中,因为它会呈现给发送出客户端的文档。一旦它到达客户端,就不能再使用PHP了。

要将变量发送到PHP脚本,您需要进行AJAX调用并将location变量作为请求的一部分发送。

或者,您可以创建一个PHP脚本,将其标题的内容类型设置为text/javascript,其中包含$_GET中的变量,并将其包括在内:

<script type="text/javascript" src="setLocation.php?loc=<?= do_shortcode(/* Whatever */) ?>">