Ajax如何获取函数参数,例如.html(html)

时间:2011-05-03 04:15:10

标签: php jquery ajax

我从网站获取代码,例如(文件名: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”?

7 个答案:

答案 0 :(得分:0)

它只是一个变量,包含对ajax post请求的响应。

答案 1 :(得分:0)

$(selector).html(html)是jQuery for

  1. 选择与“selector”匹配的项目
  2. 将其内部html设置为名为html
  3. 的变量

    在您的示例中,名为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