Note that there are some explanatory texts on larger screens.

plurals
  1. POjQuery DataTables Filtering for Specific Columns Only
    primarykey
    data
    text
    <p>I am using the jQuery plugin DataTables (<a href="http://datatables.net" rel="noreferrer">http://datatables.net</a>) for pagination, search capabilities and filtering. </p> <p>There is a filter function (<a href="http://datatables.net/release-datatables/examples/api/multi_filter_select.html" rel="noreferrer">http://datatables.net/release-datatables/examples/api/multi_filter_select.html</a>) that places form select elements for each column. </p> <p>My issue is that I don't want the filter select elements for every column, only some. I've modified the original code as I want Yes/No filtering only, and my first column contains user names. </p> <p>How do I remove the form select element from the first column?</p> <p>JavaScript:</p> <pre><code>&lt;script type="text/javascript"&gt; $(document).ready(function() { (function($) { /* * Function: fnGetColumnData * Purpose: Return an array of table values from a particular column. * Returns: array string: 1d data array * Inputs: object:oSettings - dataTable settings object. This is always the last argument past to the function * int:iColumn - the id of the column to extract the data from * bool:bUnique - optional - if set to false duplicated values are not filtered out * bool:bFiltered - optional - if set to false all the table data is used (not only the filtered) * bool:bIgnoreEmpty - optional - if set to false empty values are not filtered from the result array * Author: Benedikt Forchhammer &lt;b.forchhammer /AT\ mind2.de&gt; */ $.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) { // check that we have a column id if ( typeof iColumn == "undefined" ) return new Array(); // by default we only want unique data if ( typeof bUnique == "undefined" ) bUnique = true; // by default we do want to only look at filtered data if ( typeof bFiltered == "undefined" ) bFiltered = true; // by default we do not wany to include empty values if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true; // list of rows which we're going to loop through var aiRows; // use only filtered rows if (bFiltered == true) aiRows = oSettings.aiDisplay; // use all rows else aiRows = oSettings.aiDisplayMaster; // all row numbers // set up data array var asResultData = new Array(); for (var i=0,c=aiRows.length; i&lt;c; i++) { iRow = aiRows[i]; var aData = this.fnGetData(iRow); var sValue = aData[iColumn]; // ignore empty values? if (bIgnoreEmpty == true &amp;&amp; sValue.length == 0) continue; // ignore unique values? else if (bUnique == true &amp;&amp; jQuery.inArray(sValue, asResultData) &gt; -1) continue; // else push the value onto the result data array else asResultData.push(sValue); } return asResultData; }}(jQuery)); function fnCreateSelect( aData ) { return '&lt;select&gt;&lt;option value=""&gt;Select&lt;/option&gt;&lt;option value="Yes"&gt;Yes&lt;/option&gt;&lt;option value="No"&gt;No&lt;/option&gt;&lt;/select&gt;'; } var oTable = $('#results').dataTable({ "sDom": '&lt;&lt;"filters"f&gt;&lt;"clear"&gt;&lt;"top"Tp&gt;&lt;"clear"&gt;rt&lt;"bottom"il&gt;&gt;', "iDisplayLength": 5, "sPaginationType": "full_numbers", "bSortCellsTop": true, "oLanguage": { "sSearch": "Search all columns:" }, "aoColumns": [ null, { "sType": "title-string" }, { "sType": "title-string" }, { "sType": "title-string" }, { "sType": "title-string" } ], "oTableTools": { "sSwfPath": "../../scripts/TableTools/copy_cvs_xls_pdf.swf" } }); /* Add a select menu for each TH element in the table footer */ $("thead #filter td").each( function ( i ) { this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) ); $('select', this).change( function () { oTable.fnFilter( $(this).val(), i ); } ); } ); } ); &lt;/script&gt; </code></pre> <p>HTML:</p> <pre><code>&lt;table id="results" class="display"&gt; &lt;thead&gt; &lt;tr id="labels"&gt; &lt;th&gt;1&lt;/th&gt; &lt;th&gt;2&lt;/th&gt; &lt;th&gt;3&lt;/th&gt; &lt;th&gt;4&lt;/th&gt; &lt;th&gt;5?&lt;/th&gt; &lt;/tr&gt; &lt;tr id="filter"&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;2&lt;/td&gt; &lt;td&gt;3&lt;/td&gt; &lt;td&gt;4&lt;/td&gt; &lt;td&gt;5?&lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; ... &lt;/tbody&gt; &lt;/table&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload