获取JavaScript JSON字符串来填充DataTable
Getting JavaScript JSON string to populate DataTable
我有一个java函数,它从java中的Servlet获取JSON数据字符串。我试图使用该数据填充一个数据表(http://www.datatables.net/examples/data_sources/ajax.html)
这是数据表网站指导用户填充数据表的方式:
$(document).ready(function() {
$('#example').dataTable( {
"ajax": '../ajax/data/arrays.txt'
} );
} );
这个javascript方法调用servlet中的doPost方法生成并返回JSON:
<script>
$(document).ready(function() { // When the HTML DOM is ready loading, then execute the following function...
//$('#somebutton').click(function() { // Locate HTML DOM element with ID "somebutton" and assign the following function to its "click" event...
var bodyContent = $.ajax({
url : "DAOserv",
global : false,
type : "POST",
data : "name=value",
dataType : "json",
async : false,
success : function() {
console.log("ok");
alert("ok");
}
}).responseText;
console.log(bodyContent);
});
</script>
我怎么能得到JSON字符串在var bodyContent
填充数据表?
首先,您并没有真正使用AJAX;当你这样做的时候:
var bodyContent = $.ajax({
url : "DAOserv",
global : false,
type : "POST",
data : "name=value",
dataType : "json",
async : false,
success : function() {
console.log("ok");
alert("ok");
}).responseText;
你设置async: false
…但是AJAX代表异步 Javascript和XML。使用AJAX方法会发生以下情况:
- 服务器需要多少时间来响应;在此期间用户的浏览器未被锁定
- 当服务器响应你定义的
success
回调被调用
$.ajax
启动请求随着你的到来
- 执行
$.ajax
- 用户的浏览器在等待响应时被锁定
- 当服务器响应你的代码时(在
$.ajax
调用之后)被调用。
要使您的代码成为真正的AJAX,请这样做:
var bodyContent = $.ajax({
url : "DAOserv",
global : false,
type : "POST",
data : "name=value",
dataType : "json",
success : function(responseText) {
bodyContent = responseText
}
});
当然,一旦响应返回,您还需要构建您的数据表,所以您真正想要的是:
success : function(responseText) {
$('#example').dataTable( {
"data": responseText
});
}
(或者类似的东西;我忘了DataTable的确切语法)
参考jQuery。ajax文档。success
回调的第一个参数从服务器返回的数据。还要注意,对这些数据的所有操作都应该在这个回调中。我想你应该另外检查status
参数:
$(document).ready(function() {
var bodyContent = null;
$.ajax({
url : "DAOserv",
global : false,
type : "POST",
data : "name=value",
dataType : "json",
success : function(data, status) {
console.log(data);
$('#example').dataTable( {
"data": $.parseJSON(data),
"columns": [
{ "title": "Engine" },
{ "title": "Browser" },
{ "title": "Platform" },
]
});
});
});
});
UPDATE要填充数据服务器应该响应JSON编码的数据数组,您应该解析它并传递给dataTable,如这里所示。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- DataTable按下键选择扩展/导航
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用JSON字符串中的jQuery填充下拉框
- 动态填充两个下拉菜单
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 未捕获的类型错误:$(..).dataTable不是函数
- 使用 AJAX XMLHttpRequest 填充 DataTable 的主体
- 用来自JS对象的数据填充datatable
- 获取JavaScript JSON字符串来填充DataTable
- 用JSON填充DataTable时,需要在一个列中呈现一个超链接,并在另一个JSON字段中找到一个值
- Datatable jquery插件:填充select来过滤通过ajax获得的数据