我需要使用"数据"填充我的数据表列,但它(自然)在AJAX get之外是未定义的。我怎么能解决这个问题?
$(document).ready( function () {
$('#search').keyup(function(){
q = $(this).val();
$.get( "allUsers/?search=" + q , function (data) {
});
});
$('#example').DataTable({
data: data,
columns: [
{ data: 'name.first'},
{ data: 'name.last' },
{ data: 'email' }
]
});
});
答案 0 :(得分:0)
在回调中创建数据表以使用响应。
这是更新的代码。
$(document).ready( function () {
$('#search').keyup(function(){
q = $(this).val();
$.get( "allUsers/?search=" + q , function (data) {
$('#example').DataTable({
data: data,
columns: [
{ data: 'name.first'},
{ data: 'name.last' },
{ data: 'email' }
]
});
});
});
});
如果由于任何原因,您被限制在回调中创建数据表,您可以定义一个创建数据表的函数,并在必要时调用它。
以下是您可以选择的方法。
$(document).ready(function() {
function createDataTable(data) {
$('#example').DataTable({
data: data,
columns: [{
data: 'name.first'
},
{
data: 'name.last'
},
{
data: 'email'
}
]
});
}
$('#search').keyup(function() {
q = $(this).val();
$.get("allUsers/?search=" + q, function(data) {
createDataTable(data);
});
});
});
编辑:更新了评论中的建议。
答案 1 :(得分:-2)
你可以这样做。将参数传递给ajax函数并直接使用
function populate(data){
$.ajax({
type:"GET",
url:"Task-detail-table.jsp",
async: false,
data:{value:data },
dataType:"html",
success:function(data) {
$("#Table").html(data);
},
error:function() {
alert("Error");
}
})
}