<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Blog — DataTables forums</title>
        <link>https://next.datatables.net/forums/</link>
        <pubDate>Wed, 22 Jul 2026 01:34:35 +0000</pubDate>
        <language>en</language>
            <description>Blog — DataTables forums</description>
    <language>en</language>
    <atom:link href="https://next.datatables.net/forums/categories/blog/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Blog: Parent / child editing in child, No Data in example?</title>
        <link>https://next.datatables.net/forums/discussion/78249/blog-parent-child-editing-in-child-no-data-in-example</link>
        <pubDate>Wed, 21 Feb 2024 23:59:12 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>vince-carrasco</dc:creator>
        <guid isPermaLink="false">78249@/forums/discussions</guid>
        <description><![CDATA[<p><a rel="nofollow" href="https://datatables.net/blog/2019-01-11">https://datatables.net/blog/2019-01-11</a><br />
I have been trying to emulate the Parent Child example, but there is no data in the Blog.<br />
Must be a broken reference.</p>
]]>
        </description>
    </item>
    <item>
        <title>DataTables for Symfony 6.0</title>
        <link>https://next.datatables.net/forums/discussion/72068/datatables-for-symfony-6-0</link>
        <pubDate>Wed, 16 Mar 2022 14:20:48 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>schwaluck</dc:creator>
        <guid isPermaLink="false">72068@/forums/discussions</guid>
        <description><![CDATA[<p>Hello all,</p>

<p>I am currently working on a project for which I am using Symfony 6.0 as the PHP framework. Now I wanted to use DataTables with server side processing, but still make use of the Doctrine engine. Therefore I transferred the core aspects like loading entries, filtering, ordering, etc. into a service that should be reusable for each table.</p>

<p>My starting point for the code was the following post: <a rel="nofollow" href="http://growingcookies.com/datatables-server-side-processing-in-symfony/">http://growingcookies.com/datatables-server-side-processing-in-symfony/</a></p>

<p>Below you can find the code for the service. The code for the controller, repository, view and js will be in the comments.^^</p>

<p><strong>Remark:</strong> I have not yet tested the functionality of the function "addJoins" for performing joins. Nevertheless, you can find the current code for this in the service and repository.</p>

<p>I thought I'd share my result with you and maybe it will help one or the other of you. If you have any suggestions for improvement or comments, I'm curious <img src="https://next.datatables.net/forums/resources/emoji/smile.png" title=":smile:" alt=":smile:" height="20" /></p>

<p>Best regards<br />
Schwaluck</p>

<p><strong>Service</strong></p>

<pre><code>// src/Service/DataTableService.php
namespace App\Service;

class DataTableService {

    public function getData($request, $repository, $furtherConditions=""): string {
        
        // Get the parameters from the Ajax Call
        if ($request-&gt;getMethod() == 'POST') {
            $parameters = $request-&gt;request-&gt;all();
            $draw = $parameters['draw'];
            $start = $parameters['start'];
            $length = $parameters['length'];
            $search = $parameters['search'];
            $orders = $parameters['order'];
            $columns = $parameters['columns'];
        }
        else
            die;
        
        //Order the Entries for the table
        foreach ($orders as $key =&gt; $order){
            $orders[$key]['name'] = $columns[$order['column']]['name'];
        }

        // Get results from the Repository
        $results = $repository-&gt;getTableData($start, $length, $orders, $search, $columns, $furtherConditions = null);
        $objects = $results["results"];
        
        // Get total number of objects
        $total_objects_count =  $repository-&gt;countObjects();
        
        // Get total number of results
        $selected_objects_count = count($objects);
        
        // Get total number of filtered data
        $filtered_objects_count = $results["countResult"];
        
        // Construct response
        $response = '{
            "draw": '.$draw.',
            "recordsTotal": '.$total_objects_count.',
            "recordsFiltered": '.$filtered_objects_count.',
            "data": [';
        
        $i = 0;
        
        foreach ($objects as $key =&gt; $object) {
            $response .= '["';
            
            $j = 0; 
            $nbColumn = count($columns);
            foreach ($columns as $key =&gt; $column) {
                // In all cases where something does not exist or went wrong, return -
                $responseTemp = "-";
                
                $functionName = 'get'.$column['name'];

                if ($functionName != "get")
                    $responseTemp = $object-&gt;$functionName();
               
               // Add the found data to the json
               $response .= $responseTemp;
               
               if(++$j !== $nbColumn)
               $response .='","';
            }
            
            $response .= '"]';
            
            // Not on the last item
            if(++$i !== $selected_objects_count)
                $response .= ',';
        }
        
        $response .= ']}';

        return $response;
    }
        
    public function countObjectsInTable($countQuery, $table) {
        return $countQuery-&gt;select("COUNT($table)");
    }

    public function setLength($countQuery, $length) {
        $countResult = $countQuery-&gt;getQuery()-&gt;getSingleScalarResult();
        if ($length == -1) {
            $length = $countResult;
        }
        return $countResult;
    }

    public function addJoins($query, $countQuery, $joins) {
        for($i = 0; $i &lt; count($joins); $i++) {
            $query-&gt;join($joins[$i].$joins[$i][1], $joins[$i][2]);
            $countQuery-&gt;join($joins[$i].$joins[$i][1], $joins[$i][2]);              
        }  
    }

    public function addConditions($query, $conditions) {
        if ($conditions != null) {
            // Add condition
            $query-&gt;where($conditions);
            $countQuery-&gt;where($conditions);
        }
    }

    public function performSearch($query, $countQuery,$table, $columns, $search) {
    
        $searchItem = $search['value'];
        $searchQuery = "";
        
        for($i = 0; $i &lt; count($columns); $i++) {

            if($i &lt; count($columns)-1) {
                if($columns[$i]['searchable'] == "true" &amp;&amp; $columns[$i]['name'] != "")
                    $searchQuery .= $table.'.'.$columns[$i]['name'].' LIKE '.'\'%'.$searchItem.'%\''.' OR ';
            }
            else {
                if($columns[$i]['searchable'] == "true" &amp;&amp; $columns[$i]['name'] != "")
                    $searchQuery .= $table.'.'.$columns[$i]['name'].' LIKE '.'\'%'.$searchItem.'%\'';
            }

        }
        $query-&gt;andWhere($searchQuery);
        $countQuery-&gt;andWhere($searchQuery);
    }    
    
    public function addLimits($query, $start, $length) {
        return $query-&gt;setFirstResult($start)-&gt;setMaxResults($length);
    }
    
    public function performOrdering($query, $orders, $table) {
        foreach ($orders as $key =&gt; $order) {
            if ($order['name'] != '') {
                
                $orderColumn = null;
                
                $orderColumn = "{$table}.{$order['name']}";
                    
                if ($orderColumn !== null) {
                    $query-&gt;orderBy($orderColumn, $order['dir']);
                }
            }
        }
    }
}
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>SearchPane - feedback</title>
        <link>https://next.datatables.net/forums/discussion/46119/searchpane-feedback</link>
        <pubDate>Thu, 30 Nov 2017 15:45:12 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>allan</dc:creator>
        <guid isPermaLink="false">46119@/forums/discussions</guid>
        <description><![CDATA[<p>This thread is for <a rel="nofollow" href="/blog/2017-11-30">feedback of the SearchPane blog post</a>.</p>

<p>SearchPane is currently "experimental", in the sense that it hasn't been released as a full extension for DataTables and all that entails, as I would like to get some early feedback on the software. Is it useful? What is it missing? I'll maintain a list of requests in this post so we don't end up with too many duplicates.</p>

<p>Regards,<br />
Allan</p>

<h3 data-anchor="Feature-list"><a name="Feature-list" rel="nofollow" href="#Feature-list"></a>Feature list</h3>

<ul>
<li>Full support for Bootstrap, Foundation, Semantic UI, etc.</li>
<li>Server-side processing support (loading data from the server-side)</li>
<li>Have the count show two numbers - the first would be how many remain in the filtered set and the second would be how many in the table overall.</li>
<li>Ordering of data to match the DataTable</li>
<li>Search the search pane!</li>
<li>Rebuild API method for selected columns</li>
<li>Collapsible container</li>
<li>Support for array based data</li>
<li>Interfacing with the global search (difficult?)</li>
<li>Selection options similar to Select (e.g. <code>os</code> and <code>multi</code>, etc.)</li>
<li>Option to match column visibility (with or without Responsive?)</li>
</ul>
]]>
        </description>
    </item>
    <item>
        <title>DataTables warning: table id=dataTable - Requested unknown parameter</title>
        <link>https://next.datatables.net/forums/discussion/68925/datatables-warning-table-id-datatable-requested-unknown-parameter</link>
        <pubDate>Thu, 01 Jul 2021 14:06:01 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>jotasena</dc:creator>
        <guid isPermaLink="false">68925@/forums/discussions</guid>
        <description><![CDATA[<p><img src="https://datatables.net/forums/uploads/editor/p7/z4pgotu10fqw.png" alt="" title="" /></p>

<p>After I added this snippet of code to my report everyone else started giving this problem.</p>

<p>When it started to have this problem, I automatically left the column invisible but it still gives me a problem:</p>

<p>{ "visible": false, "targets": vm.props.filter.ReportTypeFvsId == 1 ? [15] : null },</p>

<pre><code>{
                                targets: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
                                render: function (data, type, row, meta) {
                                    if (vm.props.filter.modelTypeId == 4 &amp;&amp; vm.props.filter.tipoRelatorioAvaId == 3) {
                                        if (meta.col == 9) {
                                            return data;
                                        }
                                        else if (meta.col == 16) {
                                            return data;
                                        }
                                        var fichas = '';
                                        switch (meta.col) {
                                            case 3: fichas = row.JANID
                                                break;
                                            case 4: fichas = row.FEVID
                                                break;
                                            case 5: fichas = row.MARID
                                                break;
                                            case 6: fichas = row.ABRID
                                                break;
                                            case 7: fichas = row.MAIID
                                                break;
                                            case 8: fichas = row.JUNID
                                                break;
                                            case 10: fichas = row.JULID
                                                break;
                                            case 11: fichas = row.AGOID
                                                break;
                                            case 12: fichas = row.SETID
                                                break;
                                            case 13: fichas = row.OUTID
                                                break;
                                            case 14: fichas = row.NOVID
                                                break;
                                            case 15: fichas = row.DEZID
                                                break;
                                        }
                                    }
                                    else if (vm.props.filter.modelTypeId == 4 &amp;&amp; vm.props.filter.tipoRelatorioAvaId == 4) {
                                        var fichas = '';
                                        if (meta.col == 6) {
                                            return data;
                                        }
                                        else if (meta.col == 10) {
                                            return data;
                                        }
                                        else if (meta.col == 14) {
                                            return data;
                                        }
                                        else if (meta.col == 18) {
                                            return data;
                                        }
                                        switch (meta.col) {
                                            case 3: fichas = row.JANID
                                                break;
                                            case 4: fichas = row.FEVID
                                                break;
                                            case 5: fichas = row.MARID
                                                break;
                                            case 7: fichas = row.ABRID
                                                break;
                                            case 8: fichas = row.MAIID
                                                break;
                                            case 9: fichas = row.JUNID
                                                break;
                                            case 11: fichas = row.JULID
                                                break;
                                            case 12: fichas = row.AGOID
                                                break;
                                            case 13: fichas = row.SETID
                                                break;
                                            case 15: fichas = row.OUTID
                                                break;
                                            case 16: fichas = row.NOVID
                                                break;
                                            case 17: fichas = row.DEZID
                                                break;
                                        }
                                    }
                                    if (vm.props.filter.modelTypeId == 4) {
                                    var mediaS1 = row.PrimeiraMediaSemestral;
                                    var mediaS2 = row.SegundaMediaSemestral;

                                    var mediaT1 = row.PrimeiraMediaTrimestral;
                                    var mediaT2 = row.SegundaMediaTrimestral;
                                    var mediaT3 = row.TerceiraMediaTrimestral;
                                    var mediaT4 = row.QuartaMediaTrimestral;
                                    }
                                    if (vm.props.filter.modelTypeId == 4 &amp;&amp; vm.props.filter.tipoRelatorioAvaId == 3) {
                                        if (mediaS1 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaS1.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top" style="color:#f00"; title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                        else if (mediaS2 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaS2.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top"  title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                    }
                                    else if (vm.props.filter.modelTypeId == 4 &amp;&amp; vm.props.filter.tipoRelatorioAvaId == 4) {
                                        if (mediaT1 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaT1.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top" style="color:#f00"; title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                        else if (mediaT2 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaT2.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top" style="color:#f00"; title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                        else if (mediaT3 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaT3.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top" style="color:#f00"; title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                        else if (mediaT4 != undefined &amp;&amp; parseFloat(data.replace(",", ".")) &lt; parseFloat(mediaT4.replace(",", "."))) {
                                            data = '&lt;a onclick="abrirModal([' + fichas.toString() + '])" data-toggle="tooltip" data-placement="top"  title="Abrir Avaliação"&gt;' + data + '&lt;/a&gt;';
                                        }
                                    }
                                    return data;
                                }
                            }
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>Destroying a child row Datatable: $.detach() vs $.remove()?</title>
        <link>https://next.datatables.net/forums/discussion/66219/destroying-a-child-row-datatable-detach-vs-remove</link>
        <pubDate>Fri, 18 Dec 2020 20:19:00 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">66219@/forums/discussions</guid>
        <description><![CDATA[<p>Referencing the wonderful <strong>"Parent / child editing in child rows"</strong> blog post:<br />
<a rel="nofollow" href="https://datatables.net/blog/2019-01-11">https://datatables.net/blog/2019-01-11</a></p>

<p>Under "Destroying a DataTable", it calls the following code:</p>

<pre><code>function destroyChild(row) {
    var table = $("table", row.child());
    table.detach();
    table.DataTable().destroy();
 
    // And then hide the row
    row.child.hide();
}
</code></pre>

<p>I'm not keying in on the purpose of <code>table.detach();</code>.</p>

<p>If I'm destroying the DataTable to prevent a memory leak, doesn't <code>table.detach();</code> rather than <code>table.remove();</code> run the same risk?</p>

<p>Or does <code>table.DataTable().destroy();</code> clean it all up anyway?</p>

<p>And if so, why call <code>table.detach();</code> or <code>table.remove();</code> at all?</p>
]]>
        </description>
    </item>
    <item>
        <title>Replace values from a column for the highcharts integration/setup</title>
        <link>https://next.datatables.net/forums/discussion/65288/replace-values-from-a-column-for-the-highcharts-integration-setup</link>
        <pubDate>Tue, 03 Nov 2020 18:09:19 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>bfarkas</dc:creator>
        <guid isPermaLink="false">65288@/forums/discussions</guid>
        <description><![CDATA[<p>Hi,<br />
Working through a couple of setups for charts, inspired by the recent blog post.<br />
How would one go about replacing values shown in the chart being pulled from the table. This could be useful for renaming, but also thinking of the general use case where there are empty cells, which in the current setup return  count for "", so no label shows up on the chart, would want to replace this with none or empty or something along those lines.</p>
]]>
        </description>
    </item>
    <item>
        <title>Editing a link table with Mjoin</title>
        <link>https://next.datatables.net/forums/discussion/56043/editing-a-link-table-with-mjoin</link>
        <pubDate>Thu, 25 Apr 2019 09:29:05 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>rf1234</dc:creator>
        <guid isPermaLink="false">56043@/forums/discussions</guid>
        <description><![CDATA[<p>Maybe of interest to others with a similar use case:</p>

<p>I have a data table that only has the purpose to allow the user to make a preselection of departments using a checkbox. Editor is required to create or delete an entry in the link table between "user" and "department". On change of the checkbox I submitted an edit request to server if the box was checked and a remove request if the box was unchecked.<br />
This worked ok. The only issue was that Editor on the client side removed the entire row from the display even though only the link table entry was removed. I found a workaround. I simply replaced the remove request by submitting null to the server. This also removes the link table entry while keeping the row at the front end.</p>

<p>Here is my code example (Javascript):</p>

<pre><code>var ctrDeptSelectionEditor = new $.fn.dataTable.Editor({
    ajax: {
        url: 'actions.php?action=tblCtrDeptSelection'
    },
    table: "#tblCtrDeptSelection",
    fields: [ {
            name:      "user[].id",
            type:      "checkbox"
        }
    ]        
});

var ctrDeptSelectionTable = $('#tblCtrDeptSelection').DataTable({
    dom: "Bfrltip",
    select: false,
    ajax: {
        url: 'actions.php?action=tblCtrDeptSelection'
    },
    columns: [
        {   data: "user[].id",
            render: function ( data, type, row ) {
                if ( type === 'display' ) {
                    return '&lt;input type="checkbox" class="editor-include"&gt;';
                }
                return data;
            }
        },
        {   data: "ctr_govdept.dept_name" },
        {   data: "userRole",
            render: function ( data, type, row ) {
                return renderRole(data);
            }
        },
        {   data: "ctr_installation", render: "[,&lt;br&gt;].instName"  },
        {   data: "gov", render: "[,&lt;br&gt;].govName"  },
        {   data: "gov", render: "[,&lt;br&gt;].govRegional12"  }
    ],
    order: [[1, 'asc'], [0, 'asc']],
    buttons: [
           "colvis" 
    ],
    rowCallback: function ( row, data ) {
        // Set the checked state of the checkbox in the table
        $('input.editor-include', row).prop( 'checked', data.user_has_selected_ctr_govdept.user_id &gt;= 1 );
        if ( data.user_has_selected_ctr_govdept.user_id &gt;= 1 ) {
            $(row).addClass('fontThick');
        } else {
            $(row).removeClass('fontThick');
        }
    }    
});
    
$('#tblCtrDeptSelection').on( 'change', 'input.editor-include', function () {
    var uid = [];
    if ( $(this).prop( 'checked' ) &gt;= 1) {
        uid = [currentUserId];
    } else {
        uid = [null];
    }
    ctrDeptSelectionEditor
        .edit( $(this).closest('tr'), false )
        .set( 'user[].id', uid )
        .submit();            
} );
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>Parent / child editing in child rows - What happens to child elements when parent is deleted?</title>
        <link>https://next.datatables.net/forums/discussion/55627/parent-child-editing-in-child-rows-what-happens-to-child-elements-when-parent-is-deleted</link>
        <pubDate>Fri, 29 Mar 2019 16:37:15 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>SchautDollar</dc:creator>
        <guid isPermaLink="false">55627@/forums/discussions</guid>
        <description><![CDATA[<p>Blog post for reference: <a rel="nofollow" href="https://datatables.net/blog/2019-01-11" title="https://datatables.net/blog/2019-01-11"></a><a rel="nofollow" href="https://datatables.net/blog/2019-01-11">https://datatables.net/blog/2019-01-11</a></p>

<p>How does this affect the child elements (in the database) when you delete a parent element? Do they become "lost" or do they get deleted too?</p>
]]>
        </description>
    </item>
    <item>
        <title>Child table without header row</title>
        <link>https://next.datatables.net/forums/discussion/55602/child-table-without-header-row</link>
        <pubDate>Thu, 28 Mar 2019 09:20:12 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>hnhegde</dc:creator>
        <guid isPermaLink="false">55602@/forums/discussions</guid>
        <description><![CDATA[<p>Hello,<br />
w.r.t. <a rel="nofollow" href="https://datatables.net/blog/2019-01-11" title="Parent/Child">Parent/Child</a> table blog, is it possible to create a child table without a header?</p>

<p>Thanks,<br />
Harsha</p>
]]>
        </description>
    </item>
    <item>
        <title>On page form display</title>
        <link>https://next.datatables.net/forums/discussion/45759/on-page-form-display</link>
        <pubDate>Fri, 10 Nov 2017 11:23:45 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>nklinkers</dc:creator>
        <guid isPermaLink="false">45759@/forums/discussions</guid>
        <description><![CDATA[<p>Hello,<br />
I like this blogpost: <a rel="nofollow" href="https://datatables.net/blog/2017-06-30">https://datatables.net/blog/2017-06-30</a> and want to use it in my own website.<br />
I want to use it in a modal when I click on an edit button on my screen. So I get a bootstrapmodal where I want to place this form. I almost got it running but it doesn't show any records and when I click Add new record my modal closes.<br />
I made the example in a different standalone html page and it works as described in the blog, but when I copy it to my body of the modal it doesn't work anymore.<br />
What can be wrong?</p>
]]>
        </description>
    </item>
    <item>
        <title>syntax error in example script - parent-child editing</title>
        <link>https://next.datatables.net/forums/discussion/43008/syntax-error-in-example-script-parent-child-editing</link>
        <pubDate>Wed, 14 Jun 2017 15:58:32 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>srlapp</dc:creator>
        <guid isPermaLink="false">43008@/forums/discussions</guid>
        <description><![CDATA[<p>The example script for the server-side (PHP) script - user.php includes a code line echo json_encode( [ "data" =&gt; [] ] ); which is reflected as a syntax error when I replicate this line in a program.  I'm at a loss as to how to correct the syntax error.  This was an example script posted on the Editor site on  Friday, 25 March 2016.  Thanks</p>
]]>
        </description>
    </item>
    <item>
        <title>RSS Feed not working?</title>
        <link>https://next.datatables.net/forums/discussion/35080/rss-feed-not-working</link>
        <pubDate>Mon, 16 May 2016 15:54:49 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>daveslab</dc:creator>
        <guid isPermaLink="false">35080@/forums/discussions</guid>
        <description><![CDATA[<p>Hello,</p>

<p>I rely on the Datatables feed to keep track of the latest releases, and I noticed that the feed is now empty whereas it was working a few days ago.</p>

<p><a rel="nofollow" href="https://www.datatables.net/feeds/releases.xml">https://www.datatables.net/feeds/releases.xml</a></p>

<p>Is this expected? Also, is there a way to keep a track of the blog posts separately? I only noticed one feed URL in the source code of the blog's home page. Thanks!</p>
]]>
        </description>
    </item>
    <item>
        <title>drill down row nested rows</title>
        <link>https://next.datatables.net/forums/discussion/20622/drill-down-row-nested-rows</link>
        <pubDate>Thu, 24 Apr 2014 16:52:10 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>bcgarcia</dc:creator>
        <guid isPermaLink="false">20622@/forums/discussions</guid>
        <description><![CDATA[its possible to drill down rows and nested row in the same table?? any links/examples?<br />
<br />
in this example: http://datatables.net/blog/Drill-down_rows<br />
<br />
when a row is expanded show a div, i need to show other rows <br />
<br />
its possible??]]>
        </description>
    </item>
    <item>
        <title>Drill-down data</title>
        <link>https://next.datatables.net/forums/discussion/5401/drill-down-data</link>
        <pubDate>Sun, 19 Jun 2011 15:36:44 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>allan</dc:creator>
        <guid isPermaLink="false">5401@/forums/discussions</guid>
        <description><![CDATA[Hello all,<br />
<br />
A new thread for a new blog post :-) http://datatables.net/blog/Drill-down_rows . In this post I show how a details row in the table can be controlled by the end user through the API, with help from a couple of new features in DataTables 1.8 and a nice display animation.<br />
<br />
Enjoy!<br />
Allan]]>
        </description>
    </item>
    <item>
        <title>jqTds save in the format cvs</title>
        <link>https://next.datatables.net/forums/discussion/20563/jqtds-save-in-the-format-cvs</link>
        <pubDate>Mon, 21 Apr 2014 10:07:22 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>Virtor</dc:creator>
        <guid isPermaLink="false">20563@/forums/discussions</guid>
        <description><![CDATA[A good thing DataTables. Only it is not clear how the preservation of the table, save in the format cvs or in the Database?<br />
<br />
[code]function editRow ( oTable, nRow )<br />
{<br />
	var aData = oTable.fnGetData(nRow);<br />
	var jqTds = $('&gt;td', nRow);<br />
	jqTds[0].innerHTML = '';<br />
	jqTds[1].innerHTML = '';<br />
	jqTds[2].innerHTML = '';<br />
	jqTds[3].innerHTML = '';<br />
	jqTds[4].innerHTML = '';<br />
	jqTds[5].innerHTML = 'Save';<br />
}[/code]]]>
        </description>
    </item>
    <item>
        <title>Trying to make a plugin for wordpress</title>
        <link>https://next.datatables.net/forums/discussion/18952/trying-to-make-a-plugin-for-wordpress</link>
        <pubDate>Fri, 03 Jan 2014 19:21:29 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>PaulFreeWebs</dc:creator>
        <guid isPermaLink="false">18952@/forums/discussions</guid>
        <description><![CDATA[to start off im not sure if im posting this in the right place, sorry if its wrong.<br />
I am trying to make a plugin just for use of my self for my blog i run with my friends, and im strugling on how to do this i would really be grateful if someone can help]]>
        </description>
    </item>
    <item>
        <title>Client Side Validation</title>
        <link>https://next.datatables.net/forums/discussion/19645/client-side-validation</link>
        <pubDate>Mon, 24 Feb 2014 11:53:52 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>swatikale</dc:creator>
        <guid isPermaLink="false">19645@/forums/discussions</guid>
        <description><![CDATA[Hi,<br />
<br />
I have implemented the inline editing as mentioned here - http://datatables.net/blog/Inline_editing. <br />
<br />
I am not able to handle validations on the input box  like i would like to have keypress event and restrict the user to enter special characters but only numerics.<br />
<br />
I am not able to get handle to the inputbox which we created in EditRow()<br />
<br />
Anyone faced same problem?<br />
<br />
Thanks]]>
        </description>
    </item>
    <item>
        <title>Twitter Bootstrap</title>
        <link>https://next.datatables.net/forums/discussion/7637/twitter-bootstrap</link>
        <pubDate>Thu, 08 Dec 2011 12:40:01 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>allan</dc:creator>
        <guid isPermaLink="false">7637@/forums/discussions</guid>
        <description><![CDATA[Styling DataTables is one area that I often think I overlook a little bit in favour of further Javascript development. So I've explored integration with the Twitter Bootstrap library to create stylish tables that integrate beautifully with the rest of a site that is using Bootstrap in a blog post: http://datatables.net/blog/Twitter_Bootstrap .<br />
<br />
Integrating with Bootstrap is quite easy as you will see in the blog post (standalone example here: http://datatables.net/media/blog/bootstrap/ ).<br />
<br />
If you have done any stylings of DataTables yourself, I'd love to see them - feel free to post away :-)<br />
<br />
Regards,<br />
Allan]]>
        </description>
    </item>
    <item>
        <title>Search with utf8 characters in server side datatables with JSON-MySQL data source</title>
        <link>https://next.datatables.net/forums/discussion/16199/search-with-utf8-characters-in-server-side-datatables-with-json-mysql-data-source</link>
        <pubDate>Wed, 26 Jun 2013 17:49:00 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>AlejandroQ</dc:creator>
        <guid isPermaLink="false">16199@/forums/discussions</guid>
        <description><![CDATA[Hi. <br />
<br />
I hope this help someone.<br />
<br />
The environment:<br />
- Files encoded with utf-8. IDE, editors configured to save/edit files with utf8 as default<br />
- MySQL database created with utf-8 encoding, collation, conections. <br />
- Table fields with utf8 encoding (char, varchar, text fields)<br />
- Apache web server on Linux with utf8 encoding (.htaccess)<br />
- Meta tags in views / pages with utf-8 meta<br />
- Datatables plugin version 1.8.1<br />
<br />
As you can see, all is in utf8 encoding for correct display / save data with this encoding.<br />
<br />
When you provide server side data in JSON format with PHP to dataTables plugin, function json_encode($response), PHP &lt;= 5.3 encode the response like this case:<br />
<br />
http://stackoverflow.com/questions/7381900/php-decoding-and-encoding-json-with-unicode-characters<br />
<br />
In PHP 5.4 &gt;=, in json_encode function, you can choose or skip this default function output. But in my case, production servers are with PHP 5.3.<br />
<br />
This isn´t datatable error / bug; you need to clean your results before send to datatables when use json_encode with PHP 5.3 &lt;=.<br />
<br />
First use this PHP code (extracted from above article) to clean your json_encode($response) output and keep original utf8 chars in response:<br />
<br />
[code]<br />
function jsonRemoveUnicodeSequences($struct) {<br />
        $rep = preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));<br />
        return stripslashes($rep);<br />
}<br />
[/code]<br />
<br />
Now it works. Output from server side to datatables is clean. But a little problem was given. When you search using datatables search box, and your database results are all in upper case, the search with utf8 chars only work if you type the chars in upper case.<br />
<br />
A litte 'patch' helped me to keep the functionality when user type in upper or lower case:<br />
<br />
In jquery.dataTables.js source file of DataTables, find this function:<br />
<br />
[code]<br />
function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart )<br />
{<br />
	    var i;<br />
	    var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart );<br />
            .......<br />
[/code]<br />
<br />
In function body first line, add this:<br />
<br />
[code]<br />
function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart )<br />
{<br />
            sInput = sInput.toUpperCase()<br />
	    var i;<br />
	    var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart );<br />
            .......<br />
[/code]<br />
<br />
And that's all! DataTables is amazing.]]>
        </description>
    </item>
    <item>
        <title>How to Hit a URL to pull out the json data and to display the data on DataTable using ajax calls.</title>
        <link>https://next.datatables.net/forums/discussion/15993/how-to-hit-a-url-to-pull-out-the-json-data-and-to-display-the-data-on-datatable-using-ajax-calls</link>
        <pubDate>Thu, 13 Jun 2013 04:01:44 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>srikanthreddy</dc:creator>
        <guid isPermaLink="false">15993@/forums/discussions</guid>
        <description><![CDATA[Hello Everyone,<br />
<br />
This URL('http://xxx.xxx.xxx:8088/test/validGetMyApplications.json' , got from a different server ) is having my JSON object, i'm trying to hit this URL and trying to pull the json data from this URL to display this data in Jquery Datatable.<br />
but, when i'm trying with this following code it is not hitting the URL. Is anyone can suggest me something to resolve this issue please. Your suggestions will be very helpful. Thanks.<br />
<br />
<br />
$(document).ready(function() {<br />
$('#myapplicationstable').dataTable();<br />
$.ajax({<br />
  url: 'http://xxx.xxx.xxx:8088/test/validGetMyApplications.json',<br />
  async: false,<br />
  dataType: 'json',<br />
  success: function (data) {<br />
    $.each(data.applicationMainList, function(key, item) {<br />
      $('#myapplicationstable').dataTable().fnAddData( [<br />
    item.motsId,<br />
    item.prismAppLink.linkName,<br />
    item.applicationIdName.applicationName,<br />
    item.appAcronym,<br />
    item.applicationOwner.name<br />
    ]<br />
    );<br />
    });<br />
  }<br />
 });<br />
 <br />
 } );]]>
        </description>
    </item>
    <item>
        <title>Accept bitcoins?</title>
        <link>https://next.datatables.net/forums/discussion/14213/accept-bitcoins</link>
        <pubDate>Wed, 20 Feb 2013 16:14:14 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>fbas</dc:creator>
        <guid isPermaLink="false">14213@/forums/discussions</guid>
        <description><![CDATA[this is somewhat of a plug - I've gotten into the Bitcoin community and find it a fascinating project and way to send/receive payments.  any chance you'll want to start accepting donations via Bitcoin?]]>
        </description>
    </item>
    <item>
        <title>Twitter bootsrapping has a lot of inconveniences. Do you agree?</title>
        <link>https://next.datatables.net/forums/discussion/14610/twitter-bootsrapping-has-a-lot-of-inconveniences-do-you-agree</link>
        <pubDate>Thu, 14 Mar 2013 11:04:07 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>debarati</dc:creator>
        <guid isPermaLink="false">14610@/forums/discussions</guid>
        <description><![CDATA[Bootstrapping may not always work in favor of browser's/user's convenience. Your thoughts? <br />
<br />
http://blog.idyllic-software.com/blog/bid/235535/Why-we-don-t-use-Twitter-Bootstrap]]>
        </description>
    </item>
    <item>
        <title>Drill Down Rows With Multi Filter Select</title>
        <link>https://next.datatables.net/forums/discussion/14446/drill-down-rows-with-multi-filter-select</link>
        <pubDate>Tue, 05 Mar 2013 17:07:52 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>mdriver</dc:creator>
        <guid isPermaLink="false">14446@/forums/discussions</guid>
        <description><![CDATA[Hello,<br />
<br />
I am trying to incorporate the multi filter select in to your drill down rows example. I really have no clue as to what I am doing and I have tried to copy the script from the multi filter select example into the drill down rows example but I can not get the drop down list to populate. Would you be able to help me out with this?<br />
<br />
Thanks]]>
        </description>
    </item>
    <item>
        <title>Small HTML fix on Scroller tutorial</title>
        <link>https://next.datatables.net/forums/discussion/14445/small-html-fix-on-scroller-tutorial</link>
        <pubDate>Tue, 05 Mar 2013 16:13:22 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>BrainCrumbz</dc:creator>
        <guid isPermaLink="false">14445@/forums/discussions</guid>
        <description><![CDATA[Hello. First of all, my compliment for this great work of Software!!<br />
<br />
I was going through a tutorial at this page: http://www.datatables.net/blog/Introducing_Scroller_-_Virtual_Scrolling_for_DataTables<br />
<br />
and I just noticed a small typo in HTML. The first example of scroller sits in an iframe identified by this src: http://datatables.net/media/blog/scroller/scroller.html<br />
<br />
Unfortunately, just speaking about scrollbars and scrolling, the iframe has an height little bit too short for its contents. Thus the iframe itself shows one more scrollbar and confuse things.<br />
<br />
In order to make that disappear, it would be enough to go up to around height="320".<br />
<br />
HTH]]>
        </description>
    </item>
    <item>
        <title>Java Ingration with jquery data Table</title>
        <link>https://next.datatables.net/forums/discussion/14168/java-ingration-with-jquery-data-table</link>
        <pubDate>Mon, 18 Feb 2013 15:29:17 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>techblogger</dc:creator>
        <guid isPermaLink="false">14168@/forums/discussions</guid>
        <description><![CDATA[http://www.tutorialsavvy.com/2013/02/jquery-sparkline-and-datatable.html<br />
<br />
This blog post shows java integration with Jquery Data table and jquery spark line.]]>
        </description>
    </item>
    <item>
        <title>aoData is null when expanding details of a row</title>
        <link>https://next.datatables.net/forums/discussion/13997/aodata-is-null-when-expanding-details-of-a-row</link>
        <pubDate>Fri, 08 Feb 2013 01:25:44 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>southfanning</dc:creator>
        <guid isPermaLink="false">13997@/forums/discussions</guid>
        <description><![CDATA[I've been working on this for a few nights and I'm just not getting anywhere.<br />
<br />
I'm displaying a datatable inside an accordion.  It works great for the most part.  The problem is, if I load the same table more than once, I get an 'aoData' is null error when expanding the row.  Details work fine the first time.<br />
<br />
Any ideas?<br />
<br />
var oTable = $('#'+category).dataTable( {<br />
      "bProcessing": false,<br />
      "bDestroy": true,<br />
      "aaData": patJson,<br />
      "bAutoWidth": false,<br />
      "aoColumns": [<br />
        {<br />
         "mDataProp": null, <br />
         "sClass": "control center", <br />
         "sDefaultContent": '',<br />
         "sWidth": "5%"<br />
        },<br />
        { "mDataProp": "S_PAT_NAME", "sWidth": "30%" },<br />
        { "mDataProp": "S_AGE", "sWidth": "15%"},<br />
        { "mDataProp": "S_FIN", "sWidth": "30%"},<br />
        { "mDataProp": "S_ROOM_BED", "sWidth": "20%" }<br />
      ]<br />
    } );<br />
<br />
    $('#'+category+' td.control').live( 'click', function () <br />
    {<br />
      var nTr = this.parentNode;<br />
      var i = $.inArray( nTr, anOpen );<br />
<br />
      if ( i === -1 ) <br />
      {<br />
        $('img', this).attr( 'src', sImageUrl+"details_close.png" );<br />
        var nDetailsRow = oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );<br />
        $('div.innerDetails', nDetailsRow).slideDown();<br />
        anOpen.push( nTr );<br />
      }<br />
      else <br />
      {<br />
        $('img', this).attr( 'src', sImageUrl+"details_open.png" );<br />
        $('div.innerDetails', $(nTr).next()[0]).slideUp( function () <br />
        {<br />
          oTable.fnClose( nTr );<br />
          anOpen.splice( i, 1 );<br />
        } );<br />
      }<br />
    } );]]>
        </description>
    </item>
    <item>
        <title>Inline editing</title>
        <link>https://next.datatables.net/forums/discussion/5200/inline-editing</link>
        <pubDate>Tue, 31 May 2011 21:55:33 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>allan</dc:creator>
        <guid isPermaLink="false">5200@/forums/discussions</guid>
        <description><![CDATA[Hello all,<br />
<br />
A new blog post discussing how inline, full row editing can be achieved quite simply with the DataTables API:<br />
<br />
http://datatables.net/blog/Inline_editing<br />
<br />
Enjoy :-)<br />
Allan]]>
        </description>
    </item>
    <item>
        <title>Show date in Google custom search results</title>
        <link>https://next.datatables.net/forums/discussion/13583/show-date-in-google-custom-search-results</link>
        <pubDate>Sat, 12 Jan 2013 06:38:18 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>mdiessner</dc:creator>
        <guid isPermaLink="false">13583@/forums/discussions</guid>
        <description><![CDATA[Hi Alan,<br />
Would be nice if the google custom search results on the FAQs etc. showed a date stamp - makes filtering for newer results easier.<br />
Just a thought.<br />
Best,<br />
Martin]]>
        </description>
    </item>
    <item>
        <title>Use PreRendered DOM Elements instead of sDOM</title>
        <link>https://next.datatables.net/forums/discussion/13497/use-prerendered-dom-elements-instead-of-sdom</link>
        <pubDate>Mon, 07 Jan 2013 18:56:11 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>billpull</dc:creator>
        <guid isPermaLink="false">13497@/forums/discussions</guid>
        <description><![CDATA[Is there a way to not inject the table controls via sDom but instead write those in my html and attach events to<br />
perform their functions or populate them.<br />
<br />
Basically would like to have the search input, the results per page, and the pagination. Anyone have an idea of <br />
how to do this without creating DOM elements on dataTables init]]>
        </description>
    </item>
    <item>
        <title>Creating beautiful and functional tables with DataTables</title>
        <link>https://next.datatables.net/forums/discussion/4963/creating-beautiful-and-functional-tables-with-datatables</link>
        <pubDate>Tue, 10 May 2011 18:01:50 +0000</pubDate>
        <category>Blog</category>
        <dc:creator>allan</dc:creator>
        <guid isPermaLink="false">4963@/forums/discussions</guid>
        <description><![CDATA[Hello all,<br />
<br />
In this latest blog post, I'm skipping over the API and options that DataTables presents, and focusing on how tables can be styled to make the attractive, and fit smoothly into your own site:<br />
<br />
http://datatables.net/blog/Creating_beautiful_and_functional_tables_with_DataTables<br />
<br />
If you come up with any colour schemes of your own, please drop a note in here, or feel free to discuss the article as you wish.<br />
<br />
Enjoy :-)<br />
Allan]]>
        </description>
    </item>
   </channel>
</rss>
