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