如何将PHP插入jQuery?
我明白,不能从客户端(JavaScript)执行PHP,但那么适当的方法是什么?在PHP中写我的jQuery?这是我正在寻找的一个例子。如何将PHP插入jQuery?
<!-- Wordpress template URL -->
<div id="template_directory" style="display: none;">
<?php bloginfo('template_url'); ?>
</div>
<!-- Fetch with jQuery -->
var templDirec = $("#template_directory").html();
var imgHTML = '<img src="' + templDirec + '/images/my-image.jpg" />';
因为我是新手,所以首选简单的描述性答案。让js和php一起工作的最佳方式是什么?由于
首先,你应该换行的js代码与script
- 标签:
<!-- Wordpress template URL -->
<div id="template_directory" style="display: none;">
<?php bloginfo('template_url'); ?>
</div>
<!-- Fetch with jQuery -->
<script type="text/javascript">
var templDirec = $("#template_directory").html();
var imgHTML = '<img src="' + templDirec + '/images/my-image.jpg" />';
</script>
如果你想从PHP通过一些数据来JS使用echo
:
<script type="text/javascript">
var templDirec = $("#template_directory").html();
var imgHTML = '<img src="<?php echo $image ?>" />';
</script>
其中$image
-php变量。一般来说,您可以使用PHP和html生成任何JS代码。
从JS(从客户端到服务器)将数据传递给PHP使用AJAX
我希望这将有助于。
'$ image'在第二个代码块中应该有一个分号(;)。 – 2012-02-26 09:22:02
嘿,伙计,谢谢,但这不是我要找的。我不认为你的代码也可以工作,因为我尝试了类似的东西,我得到的只是我的PHP的字符串文字(换句话说,PHP没有转换)。另外,我在.js文件中有我的jQuery,因此不需要
@Tarek Fadel:在结束php-tag(?>)之前不需要分号。 – 2012-02-27 07:33:04
你的问题非常模糊,不清楚你在问什么。只要您从评论或答案中了解到某些内容,请立即修改并优化您的问题。
首先,正如webdeskil在评论中指出的那样,您确实可以从客户端调用PHP代码,而且事实上这经常是非常频繁的。你不能做的是在客户端执行PHP代码。任何执行服务器端代码的请求,在这种情况下,PHP都必须到达服务器端,并且它是有意义的,才能执行。
从你的标签看起来你正在为wordpress写一些代码。恕我直言,学习编程技巧的一种好方法是查看现有的代码。由于wordpress是开源的,您可以打开任何插件或主题并进行查看。然而,你的wordpress需要的头号资源当然是codex。仔细阅读法典文档,在这种情况下,codex document for using javascript与您的问题有关。
一些提示,也许有所帮助:
- 你应该避免编写JavaScript文件,其中PHP可以做同样的事情
- 如果您使用JQuery,你应该知道,WordPress的已经加载的JQuery的实例为你你应该避免加载另一个实例,如果你能
总之,给你更多的帮助,你需要编辑和进一步优化的问题,否则其所有的猜测我们试图帮助。
我认为这是我所遇到的一个普遍问题。上面的作品(迄今为止很好),但我知道我没有看到这在正确的光线,而你的答案刚刚摆脱了一些,我仍然想知道程序员如何处理与jQuery和PHP的工作,与AJAX soley,或?如果是这样,你能告诉我一个基于我上面的代码的例子吗? – Marc 2012-02-27 07:23:32
什么不行? – Michas 2012-02-26 07:07:37
你究竟想达到什么目的?您可以使用xmlHttpRequest从JavaScript客户端执行JavaScript(您可能知道它是AJAX)。 – 2012-02-26 07:33:57
@Michas上述作品,我只是想知道这些任务的最佳做法。这只是我试图解决这个问题。 – Marc 2012-02-27 07:01:44