如果来自ajax的数据不为空,则创建表

时间:2015-05-15 09:52:24

标签: javascript jquery ajax

首先我有HTML:

            <div class="showTable" style="display: none;">

            <table id="example" class="table table-responsitive" cellspacing="0" width="100%" style="margin-top:30px;">
        <thead>
            <tr>
                <th>ID</th>
                <th>Broj računa</th>
                <th>Kupac</th>
                <th>Datum izdavanja</th>
                <th>Rok za plaćanje</th>
                <th>Status</th>

                <th></th>


            </tr>
        </thead>


    </table>
            </div>
            <div class="showInfo" style="display: none">
</div>

之后我写JS:

$(document).ready(function() {
    drawVisualization();

    });
function drawVisualization() {

    console.log('proba');
    $.ajax({
            url: "getracuni.php",
            type: "POST",
            async: true, 
            dataType: "html",

            success: function(json) {
            console.log(json);
            if (!json.data){
                json.data = [];
                $('.showInfo').show();
            } else {
             var podaci = json.data;
             $('.showTable').show();
             showTable(podaci);
            }
            },
            error: function(data) {
            console.log(data);
            }
        });
            };

所以在这里我尝试做到这一点: 1.来自ajax的IF数据不为空,然后用函数showTable(podaci)创建数据表; 2.如果来自ajax的数据是空的,那么只想显示div类'showInfo'。

我的showTable(podaci)功能是:

function showTable(podaci) {
     $('#example').dataTable({

          data: podaci.data,
                    paging: false,
                    "dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
            bfilter: false,
                    "oLanguage": {
    "sInfo": 'Ukupno _END_ računa.',
    "sInfoEmpty": 'Nema podataka o računima',
    "sEmptyTable": "Nemate račune, dodajte klikom na dugme ispod.",
},
         // end ,
                    "columns": [{
                            "data": "ID"
                        }, {
                            "data": "br"
                        }, 
                        {
                            "data": "kupac"
                        },
                        {
                            "data": "datum"
                        },
                        {
                            "data": "rok"
                        },
                        {
                            "data": "status"
                        },
                        {
                            "data": "akcija"
                        }
                    ],
                    "columnDefs": [
                            {
                        "targets": 6,
                        "data": "akcija",
                        "render": function(data, type, full, meta) {
                            // return data; 
                            return '<div style="float:right;"><div class="btn-group"><a href="#" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Izmeni <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Izmeni</a></li><li><a href="#">Pošalji</a></li><li><a href="#">Opomeni</a></li><li><a href="#">Plaćeno</a></li><li><a href="#">Stoniraj</a></li><li><a href="#">Kopiraj</a></li><li><a href="#">Obriši</a></li></ul></div> <i  data-toggle="modal" data-target="#delete" class="fa fa-times"></i></div>';
                        }
                    },
                            {
                        "targets": 0,
                        "visible":false
                            }
    ]
                });
}

我也以这种JSON格式从ajax获取数据:

{"data":[{"ID":1,"br":"1-2015","kupac":"ADAkolor","datum":"2015-05-19","rok":"2015-05-21","status":"placeno"},{"ID":2,"br":"2-2015","kupac":"Milenk","datum":"2015-05-27","rok":"2015-05-28","status":""}]}

我认为我写的一切都很好但是当我尝试运行这段代码时,我只是得到了空白屏幕。所以什么都不会在那里展示......

1 个答案:

答案 0 :(得分:0)

改变你的状况  if (!json.data)if (json.data!=null)