我刚刚开始使用Ajax而且我并没有完全迷失......不确定它是如何运作的。
我认为Ajax将(通过示例发布)发送到服务器并返回x数据,但该数据会自动添加到DOM(无需重新加载页面)。我有以下jquery ajax脚本:
$.ajax({
method: "POST",
url: "/url",
data: {
'varname': varname,
'varname2': varname2
// etc
}
});
return false;
我刚刚学会了(但不知怎的,我已经在期待这个......)它返回的内容是数据内部并且它与浏览器(当前)DOM或html没有同步。我做了一个警报(数据)并看到了全新的html编译代码:
}).done(function(data) {
alert(data);
});
return false;
问题是:我应该如何将我需要的数据添加到当前的html中。我的意思是,如果发送的变量触发新脚本(并生成新内容),我如何放置新内容,刷新或更新旧内容?
答案 0 :(得分:3)
Ajax只是一个术语,用于从JavaScript发出HTTP请求,而不加载新页面。
我刚刚学会了(但不知怎的,我已经在期待这个......)它返回的内容是数据,并且它与浏览器(当前)DOM或html没有同步。
正确。数据可供JavaScript使用,以便您的代码可以随意执行任何操作。
问题是:我应该如何将我需要的数据添加到当前的html中。
DOM操作。
jQuery提供了许多方法来帮助解决这个问题,包括replaceWith
和append
。
答案 1 :(得分:0)
而不是使用.done 您可以将代码编辑为
x-coredata://E67F6A37-4E56-4A55-A01E-940D8BD9EBE9/Users/p14
使用上面的代码,您可以毫不费力地从服务器返回数据。
答案 2 :(得分:0)
不,您的脚本必须处理来自服务器的响应并决定如何处理它。
如果您希望插入从ajax请求返回的html并将其插入到DOM /页面中,那么您可以查看html,append和insertAfter等函数来完成此操作
示例可能如下所示:
}).done(function(data) {
$('#someContainerId').html(data);
});
答案 3 :(得分:0)
首先,您必须设置所请求的网页(网址)以仅回复您需要的数据(例如,您可能不需要<html>
和</html>
之间的整个网页。
在PHP文件的开头使用
if(!empty($_POST['PASSED_VARIABLE'])) {
...
// Manipulate the data.
...
echo $data; // Echo the result.
}
完成Ajax功能后,您可以将收到的数据插入DOM:
.done(function(data) {
$('div#results').html(data); // Or any other DOM manipulation.
})
答案 4 :(得分:0)
解决方案非常简单:拿出我需要的东西并打印出来:
}).done(function(data) {
var new_content = $(data).find('#search');
$('#search').html(new_content);
});
感谢您的回答。