我从网站获取代码,例如(文件名:index.php):
<html>
<body>
<div class="menu" title="example">Click here to change the content from a html file</div>
<div id="content"></div>
<script>
$(".menu").click(function() {
var page = $(this).attr("title");
$.post("content.php", {"page": page}, function(html){ $("#content").html(html);});
});
</script>
</body>
</html>
在“content.php”中:
<?php
ob_start();
include 'index.php';
ob_end_clean();
$page = $_POST['page'];
$file = $page."html";
include($file);
?>
它适用于简单的$ page。“html”文件。但是,如果我在$ page中添加一些复杂的JavaScript。“html”,它不起作用。我想知道为什么,如何以及 .html(html)是什么?我找不到任何关于将参数传递为 html 的参考资料。什么是“html”?
答案 0 :(得分:0)
它只是一个变量,包含对ajax post请求的响应。
答案 1 :(得分:0)
$(selector).html(html)是jQuery for
在您的示例中,名为html的变量是传递回$ .post调用的成功函数的参数。因此$ .post与服务器通信,获取页面,然后将内容加载到id = content的div中。因此,对于更复杂的页面,也许您没有正确格式化返回。在该函数中执行警报(html),以便以非常简单的方式调试html的设置。在firebug或Chrome的开发者控制台之类的地方设置断点以深入挖掘。
答案 2 :(得分:0)
function(html){ $("#content").html(html);}
部分代码将从调用返回到content.php的内容分配到ID设置为“content”的现有元素中。你绝对可以将javascript函数加载到DOM中,或者在它们加载到“content”div时执行它们。你得到了什么样的错误?
我建议在你的回调中发出警告,如:
function(html){ **alert(html);** $("#content").html(html);}
答案 3 :(得分:0)
$.post("content.php", {"page": page}, function(html) {
$("#content").html(html);
});
html
中的 function(html)
是从服务器接收的输出的任意名称。因此,$("#content").html(html);
正在插入$('#content')
信息。
答案 4 :(得分:0)
是否正确达到了响应?如果你是console.log(html)或alert(html),它是你要找的内容吗?
不确定它是否有任何区别,但是如果你没有得到响应,你可以用PHP $ html替换PHP中的include($ html)吗?
答案 5 :(得分:0)
谢谢你的回答!我现在明白了部分:
function(html){
$("#content").html(html);}
参数“ html ”不是 默认。它与:
相同 function(new_content){ $("#content").html(new_content);}
对于复杂的$ page。“。html”,我 只需将代码更改为:
$.get(page+'.html', function(new_page) {$('#content').html(new_page);});
工作正常。但是我仍然令人费解,为什么我无法加载复杂的Javascript文件 使用:
$.post("content.php", {"page": page}, function(html){$("#content").html(html);});
答案 6 :(得分:0)
只是解释.html(html)
如果它是这样写的,你可以更好地理解。
.html('<p>Some returned html in here</p>')
括号内的html
表示返回的html