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


Passing location variable from Javascript to PHP function

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

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

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

现在,如果内容一直都是一样的,即

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

这很好,但不幸的是,我需要将town添加为一个名为search的参数。例如

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

所以,从本质上讲,一旦我找到了这个城镇并将其作为一个变量,有没有什么简单的方法可以让我用这个城镇作为参数来执行PHP快捷代码来替换我想要的内容?

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 */) ?>">