Api daten verarbeiten - in Tabelle ausgeben - bitte um Hilfe

ok danke...naja api code stehlen bei mir nicht da er in einer ausgelagerten PHP datei abgerufen wird.....

ok vielen Dank dir nochmal
 
Es kann vorkommen, dass Sie API-Funktionen innerhalb der DataTables-Callback-Funktionen aufrufen möchten (z. B. initComplete, rowCallback). Das Problem dabei ist, dass das Objekt nicht vollständig initialisiert wurde, sodass Sie das Ergebnis möglicherweise nicht einer Variablen zuweisen und diese Variable dann im Callback verwenden können. Die meisten Callback-Funktionen von DataTables werden im Rahmen der DataTable-Instanz ausgeführt, sodass Sie die spezielle JavaScript-Variable manipulieren können, um auf die API zuzugreifen, da dies der Tabellenknoten ist.
 
Hallo, nochmal eine Frage gibt es denn irgendwie die möglichkeit nur 5 oder 3 Zeilen auszugeben eventuell sogar random aus der kompletten json Datei ? (für eine kleine nebenliste)

Danke
 
Es war nicht ganz leicht, aber das Ergebnis ist sehr einfach. Ich hatte das JSON und die HTML-Seite noch. Damit sieht es so aus:
Code:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
    <title>DataTables example - Child rows (show extra / detailed information)</title>

    <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
    <script type="text/javascript" language="javascript" class="init"></script>

</head>
<body>
    <table id="table-ajax"></table>
    <style>
        .lnkbtn {
            display: inline-block;
            padding: 5px;
            border-radius: 3px;
            background-color: darkgrey;
            color: white;
            text-decoration: none;
        }
    </style>
    <script>
        function shuffle(a) {
            var j, x, i;
            for (i = a.length - 1; i > 0; i--) {
                j = Math.floor(Math.random() * (i + 1));
                x = a[i];
                a[i] = a[j];
                a[j] = x;
            }
        }
        var tbl = $('#table-ajax').DataTable({
            "processing": true,
            "ajax": {
                "url": "datatables-ajax-nr5.json",
                "dataSrc": function (data) {
                    data2 = data.list_data.premium.BTC;
                    shuffle(data2);
                    var retdata = [];
                    for (var i = 0; i < data2.length && i < nrtodisplay; i++) retdata.push(data2[i]);
                    return retdata;
                }
            },
            "columns": [
                { "data": "name" },
                { "data": "name" },
                { "data": "url" },
                { "data": "creation_date" }
            ],
            "order": [[1, "desc"]],
            "columnDefs": [
                {
                    "render": function (data, type, row) {
                        return Math.round(data / 30.5);
                    },
                    "targets": 3
                },
                {
                    "render": function (data, type, row) {
                        var thehtml = '<a class="lnkbtn" href="' + data + '">' + data + '</a>';
                        return thehtml;
                    },
                    "targets": 2
                }
            ]
        });
    </script>
</body>
</html>
In den Optionen unter "ajax" wird jetzt unter "dataSrc" eine Funktion definiert, die die Daten vor verarbeitet. Dort wird das Array aus der Struktur heraus geholt und 3 zufällige Zeilen herausgefiltert. Die Anzahl wird durch die Variable nrtodisplay festgelegt.
 
OK danke schonmal dafür, leider wird nichts angezeigt sondern es steht nur da Processing und tut sich danach nichts mehr :-(
 

Neue Beiträge

Zurück