2011-01-29 55 views
0

我使用PHP和jQuery,这里是我的代码(到目前为止)。从jQuery负载回调?

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

这就是我想要做的。

如果我打电话的PHP文件在PHP数组(在服务器端)找到一些值,我希望jQuery将一些内容追加(添加)到HTML元素。可以做回调吗?

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

+2

我会用$ .ajax()对于这个问题,它有回调和许多其他选项可能是有用的 – yoda 2011-01-29 15:53:13

+0

我也这么认为。投票指出我是正确的。 – 2011-01-30 20:06:11

回答

1

由于@yoda在评论说,你可以使用$阿贾克斯()来acomplish此,如下图所示:

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

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

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

+0

它可能工作。谢谢你的努力。但我用另一种方法解决了它。 – 2011-02-01 13:10:05