使用jQuery从load进行回调?

时间:2011-01-29 15:43:51

标签: php ajax jquery

我使用PHP和jQuery,这是我的代码(到目前为止)。

$(".design").load("<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",{
    menu: 'layout',
});

这就是我想要做的。

如果我正在调用的PHP文件在PHP数组中找到一些值(在服务器端),我希望jQuery将一些内容追加(添加)到HTML元素。是否可以进行类似的回调?

对我来说很重要的是我仍然可以将我的POST变量发送到我的PHP文件。

2 个答案:

答案 0 :(得分:2)

您可以使用已有的load()功能生成标记并将其添加到您的网页中。我将假设您从ajax方法返回JSON:

$(".design").load("<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",{
    menu: 'layout' }, function(data) { 
 var markup = '<ul>';
 for (var x = 0; x < data.length; x++ ) {
markup += '<li><a href="' + data[x].Url + '">'+data[x].Text+'</a></li>';
 }
 markup += '</ul>';
 #('menu').html(markup); });

load()函数接受一个可以处理ajax调用响应的函数作为可选的第三个参数。在这个例子中,为了说明的目的,我假设你想要构建一些导航,所以我正在遍历一个数组并构建一个无序列表。

也可以通过ajax请求获得更多控制/选项。我建议您查看.ajax(),了解您可以做的事情。

这是一个较旧的主题,但是这里讨论了堆栈溢出,它显示了生成html并将其插入DOM的各种方法:JQuery: Build HTML in 'memory' rather than DOM。还有tmpl()插件对于生成标记非常有用。您可以详细了解tmpl() here

答案 1 :(得分:1)

正如@yoda在评论中所说,您可以使用$ .ajax()来完成此操作,如下所示:

 $.ajax({
   type: "GET",
   url: "<?php echo get_bloginfo('url'); ?>",
   data: "addmod_ajax=1",
   success: function(data){
     alert("data is " + data );
   }
 });

如果需要,可以交换POST的类型