我需要创建一个页面,使用Jquery和AJAX从外部页面加载div。
我遇到了一些很好的教程,但它们都基于静态内容,我的链接和内容都是由PHP生成的。
我基于代码的主要教程来自:
http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/
我需要的确切功能如下:
我可以通过在主页和外页上填充div来处理所有PHP工作 这是我正在努力的JQuery和AJAX部分。
$(document).ready(function(){
var sections = $('a[id^=link_]'); // Link that passes parameter to external page
var content = $('div[id^=content_]'); // Where external div is loaded to
sections.click(function(){
//load selected section
switch(this.id){
case "div01":
content.load("external.php?param=1 #section_div01");
break;
case "div02":
content.load("external.php?param=2 #section_div02");
break;
}
});
我遇到的问题是让JQuery将动态生成的参数传递给外部页面,然后检索新的div。 我目前只能使用静态链接(如上所述)。
答案 0 :(得分:6)
我不确定你是否已经解决了这个问题,但我很惊讶没有人提到使用ajax()函数。
这将允许您将请求类型定义为GET:
function loadContent(id) {
$.ajax({
type: "GET",
url: "external.php",
dataType: 'html',
data: {param: id},
success: function(html){
$("#container").html(html);
},
error: function(){
},
complete: function(){
}
});
}
只需调用此函数而不是使用load。显然你需要修改一下代码(主要是成功函数),但这应该给你一个很好的起点。
答案 1 :(得分:2)
您可以使用可选的数据参数将参数传递给GET请求。阅读documentation。这比自己构建URL要好得多。您当然可以将动态生成的数据添加到参数列表中。
答案 2 :(得分:0)
function loadDiv(evt)
{
// these params will be accessible in php-script as $_POST['varname'];
var params = {name:'myDiv', var1:123, var2:'qwer'};
$.post('http://host/divscript.php', params, onLoadDiv);
}
function onLoadDiv(data)
{
$('#myContainer').html(data);
}
$(document).ready(function() {
$('#divButton').click(loadDiv);
});
在此示例中,服务器端脚本应返回div的内部内容。当然你可以将XML序列化数据或JS返回到eval等......这取决于任务。该示例已经过简化,因此请根据您的需要进行扩展。
答案 3 :(得分:0)
关于加载AJAX内容的教程很好:
http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/
特别是解释如何使用Firebug读取结果的部分。
答案 4 :(得分:0)
使用此:
function GetDiv(id) {
$.ajax({
type: "GET",
url: "external.php"
dataType: 'html',
data:id,
success: function(html){
$("#container").append(html);
},
});
}
答案 5 :(得分:-1)
var params = {
param: 1,
otherParam: 2
};
content.load("external.php #section_div01", params);
将加载“external.php?param = 1& otherParam = 2”