Как получить доступ к элементам данных из функции rowGroup в DataTables - PullRequest
0 голосов
/ 15 мая 2019

Я использую библиотеку JavaScript DataTables для визуализации некоторых таблиц, показывающих отдельные результаты турниров по стрельбе из лука. Пример этого можно найти здесь: http://www.archerytoolkit.net/maast/individual_results.php?p=1

Вы можете увидеть маленькую графику рассеяния на странице. Те ссылки на другой сайт, где я представляю данные из таблицы в графиках. Верхний, который следует за "Индивидуальными результатами для Тима Уилсона", работает отлично. Я также хотел бы связать графику со страницей, которая идет непосредственно к результатам каждого раунда стрельбы из лука. Эти URL имеют форму: http://www.archerytoolkit.net/maast/individual_results.php?p=1&r=1

Я добавил функцию рендеринга в часть rowGroup javascript DataTables, но не могу понять, как получить доступ к данным, которые существуют в самих строках. У каждой строки в данных есть элемент под названием round_id, который является номером, который мне нужно включить в URL-адрес выше (часть «r =»). Каждая строка в группе будет иметь одинаковый round_id.

$(document).ready( function () {
    $("#individual_results").DataTable( {
        ajax: "./js/individual_results-json.php?p=<?=$person_id?>",
            columns: [
                {"data": "round_id"},
                {"data": "round"},
                {"data": "division"},
                {"data": "score"},
                {"data": "x_count"},
                {"data": "event_date"},
                {"data": "event_name"}
            ],
            columnDefs: [
                {
                targets: [0, 1, 4],
                visible: false
                },
                {
                targets: 2,
                render: function ( data, type, full, meta ) {
                    return '<a href="./individual_rankings.php?r='+full.round_id+'&d='+encodeURIComponent(data)+'">'+data+'</a>';
                    }
                },
                {
                targets: 3,
                className: "dt-body-center",
                render: function ( data, type, full, meta ) {
                    if (full.x_count === null) {
                        return data;
                    } else {
                        return data+' '+full.x_count+'X';
                    } }
                },
                {
                targets: 5,
                className: "dt-body-center"
                }
            ],
            rowGroup: {
                startRender: function ( rows, group ) {
                    return group+' <a href="http://archerytoolkit.net/shiny/maast-dashboard/?p=<?=$person_id?>"><img src="./i/scatterplot_blk.png" height="15" width="15" /></a></h1>'; 
                },
                dataSrc: "round"
            },
            responsive: false,
            fixedHeader: true,
            paging: true,
            pageLength: 25,
            ordering: false,
            info: true,
            searching: true
        } );
    } );        

Таким образом, функция рендеринга должна возвращать что-то вроде этого:

return group+' <a href="http://archerytoolkit.net/shiny/maast-dashboard/?p=<?=$person_id?>&r='+[[INSERT ROUND_ID HERE]]+'"><img src="./i/scatterplot_blk.png" height="15" width="15" /></a></h1>';

Как получить доступ к элементам данных из функции визуализации rowGroup?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...