如何使用jQuery通过DOM插入PHP标记
How do I use jQuery to insert PHP tags through the DOM?
这是我想做的…
$("div").prepend("<div id='comment-number'><?php the_comment_number(); ?></div>");
有办法让这个工作吗?
<div class="gallery-item">
<div class="comment-number"><!--?php echo htmlspecialchars(the_comment_number()); ?--></div>
</span>
<span class="gallery-icon">
<a href="http://mysite.com/test/photos/attachment/fff/"><img src="http://mysite.com/test/wp-content/uploads/2011/06/fff-150x150.gif"></a>
</span>
</div>
PHP是在服务器上执行的,但是JavaScript代码(jQuery)是稍后在web浏览器中执行的。因此,PHP可以生成JavaScript代码,但JavaScript不能生成PHP代码。
您发布的输出中的<!--?
显示某些东西正在过滤您的PHP代码。问题不在于你的PHP代码,而在于你没有真正执行PHP代码。如果它是一个.js
文件,PHP几乎肯定不能包含在内。
如果PHP正在被求值(ex。(如果这是在.php
文件中的<script>
标记中),这应该产生有效的JavaScript代码,将做您想做的事情:
$("div").prepend("<div id='comment-number'><?php echo htmlspecialchars(the_comment_number()); ?></div>");
1) php是SERVER端脚本
2) javascript是客户端脚本(通常)
结果是这样的:
1)用户打开你的页面http://example/
2)客户端发送GET请求到http://example/服务器
3) Apache(给定您在它上运行)捕获请求,基于服务器配置方法index.php (index.html等)。如果安装了php,你的index.php将被mod_php模块解析
& lt; & lt; & lt; & lt;这是服务器端脚本被激活的地方
4)解析index.php的结果将被传送回CLIENT
5) CLIENT将消化SERVER接收到的结果
6)如果有javascript调用,这些调用要么立即执行,要么在文档加载时执行(基于方法)
就是这样。此时,正常请求生命周期结束。
现在,如果你想要你的页面动态更新它的某些部分,这里是你怎么做:1)通常要动态更新页面,您会使用AJAX方法。当创建AJAX请求时,再次发生2-7,但这一次调用者是您的AJAX进程,接收到的信息被发送回该进程以决定如何处理它。好的,一些编码:
1) index . php
<!-- include jquery, etc //-->
<div id="comments"></div>
<script>
function fetch_comments(){
$.get("ajax.php", null, function(data)){
// this is called, when response from SERVER is received
$("#comments").prepend(data);
setTimeout("fetch_comments", 5000); // fetch again in 5 seconds
}
}
$(document).ready({
fetch_comments();
});
</script>
2) ajax.php
<?php
//fetch comments, return them for CLIENT
echo "<p>Comment on " . date("Y-m-d H:i:s") . "<br />Lorem Ipsum</p>";
这应该有助于你理解整个过程。没有测试代码,但是应该可以。
对PHP脚本进行.ajax()
查询,该脚本将为您提供the_comment_number();
的值,并在ajax查询中成功事件时将结果放入$("#comment-number").prepend(result);
的注释号。
记住,PHP脚本必须连接到数据库,并传递给它你需要的所有变量(如实体id,文章id,页面等)。您可以通过GET或POST来实现。
请求是由浏览器发送的,所以会话/cookie将是相同的,除非你在当前请求中改变它。
PHP是在服务器端执行的所以你不能从javascript中调用它
你可以尝试这样做,一旦页面加载
就会渲染$("div").prepend("<div id='comment-number'>"+ <?php the_comment_number(); ?> +"</div>");
你不能直接将值添加到模板中而不是使用javascript吗?如:
<div class="gallery-item">
<div class="comment-number"><?php echo (the_comment_number());?></div>
...
</div>
在您的示例中,您还有一个</span>
标记与不匹配的<span>
标记。
如前所述,您不能直接从javascript生成或调用php代码(需要进行ajax调用或表单提交)。您需要使用jquery进行ajax调用来获取评论号,然后将其更新为div。
然而,你可能想看看这个库- http://www.phplivex.com/。它可以帮助你按照你的方式做事。它允许您在javascript中使用AJAX内部调用用户定义的php函数。
通读这次讨论,从我的理解你想要达到的目标…你得弄清楚你的页面是如何被服务的。如果是一个.php文件提供内容,那么你根本不需要Javascript,可以通过在div之间添加函数来让你的函数调用工作。
<div class="comment-number"><?php echo htmlspecialchars(the_comment_number()); ?></div>
假设您无法访问。php,或者如果是一个。html/htm页面提供的内容,那么您唯一的选择就是使用ajax。也就是说,对一个php文件(在同一域中)进行ajax调用,该文件进行函数调用并回显注释no。Ajax将检索回显的注释号。你可以在
- 如何插入PHP'生成'选项(html选择)
- 将 JavaScript 变量插入 PHP
- 在页面加载时将光标插入 PHP 下拉列表中
- 在 JavaScript 中插入 PHP
- 寻找将亚马逊数据插入PHP形式的方法
- 在javascript方法中插入php代码
- 如果数据已经存在,请检查MySQL,如果不存在,请插入.[PHP+jQuery-Ajax]
- 将javascript代码插入php
- mysql插入PHP形式的语句
- 如何使用PDO插入php文件中的数据
- 在Javascript文件中插入PHP变量值
- 我如何插入php变量到我的javascript
- 在javascript echo中插入php
- 如何正确地将JavaScript代码插入PHP
- 试图在onclick中插入PHP变量,以便设置隐藏变量
- 在pretyphoto .js文件中插入PHP代码
- 使用ajax将jquery变量插入PHP
- 在Drupal 7基本页面中插入PHP代码
- 如何在Javascript中插入PHP值
- 将Javascript转换为PHP echo以插入PHP条件语句