从AJAX请求返回数据

时间:2017-06-29 10:04:34

标签: jquery ajax

我需要使用"数据"填充我的数据表列,但它(自然)在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' }

            ]
        });       

    });

2 个答案:

答案 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");
            }
        })

  }