9
votes

Utilisation d'une liste déroulante pour filtrer une table (datables)

J'utilise le plugin de jeu de données JQuery (qui est totalement génial), mais j'ai du mal à obtenir ma table à filtrer en fonction du changement de ma boîte de sélection.

Fonction: P>

  <table border="0" cellpadding="0" cellspacing="0" id="msds-table">
                    <thead>
                      <tr>
                        <th>Column 1</th>
                        <th>Column 2</th>
                        <th>etc</th>
                      </tr>
                    </thead>
                    <tbody>
                    <select id="#msds-select">
                    <option>All</option>
                    <option>Group 1</option>
                    <option>Group 2</option>
                    <option>Group 3</option>
                    <option>Group 4</option>
                    <option>Group 5</option>
                    <option>Group 6</option>
                    </select>
                    <tr class="odd">
                        <td>Group 1</td>
                        <td><img src="images/modules/download-icon.gif" width="12" height="17" alt="" /></td>
                        <td><a href="#">Download</a></td>
                    </tr>
                    <tr class="even">
                        <td>Group 1</td>
                        <td><img src="images/modules/download-icon.gif" width="12" height="17" alt="" /></td>
                        <td><a href="#">Download</a></td>
                    </tr>
                    <tr class="odd">
                        <td>Group 1</td>
                        <td><img src="images/modules/download-icon.gif" width="12" height="17" alt="" /></td>
                        <td><a href="#">Download</a></td>
                    </tr>
     </tbody>
 </table>


3 commentaires

Pouvez-vous nous donner un peu plus d'informations sur le problème actuel? Ou pouvez-vous poster un certain code de ce que vous avez tenté et ce qui ne fonctionne pas pour vous?


Clé de retour échoue. Mis à jour avec code.


Cela m'a fallu environ une semaine pour que cela fonctionne pour moi. J'aimerais avoir encore accès à la source que j'ai utilisée. Fondamentalement, il y avait un problème dans le code source pour celui que je devais entrer et changer. Malheureusement, le site Web de Datables n'était pas trop descriptif lorsqu'il est arrivé à cette fonctionnalité. Je vérifierais leurs forums, j'ai posté à ce sujet quelques fois là-bas.


3 Réponses :


11
votes

Fonctions de données

Je savais que j'avais fait cela auparavant, et vous devez regarder cette petite information :

Notez que si vous souhaitez utiliser le filtrage dans les fichiers de données, cela doit rester 'TRUE' - Pour supprimer la zone d'entrée de filtrage par défaut et conserver Capacités de filtrage, veuillez utiliser sdom .

Vous devez définir {bfilter: true} et déplacez votre est situé?


Wow, il suffit de regarder mon identifiant Select = # MSDS-SELECT ... Je attribue celui-là au cerveau frit du vendredi soir. Merci pour votre aide, acclamations.


heureux d'avoir pu aider ;) . Ce filtrage Tidbit m'a attrapé la première fois et aspiré pour trouver.



0
votes
   $.extend( true, $.fn.dataTable.defaults, {
            "bFilter": true,
                initComplete: function () {
                    this.api().column(1).every( function () {
                        var column = this;
                        var select = $('<select><option value="">All Subjects</option></select>')
                            .appendTo( $(column.header()).empty() )
                            .on( 'change', function () {
                                var val = $.fn.dataTable.util.escapeRegex($(this).val());
                                column
                                    .search( val ? '^'+val+'$' : '', true, false )
                                    .draw();
                            } );
                        column.data().unique().sort().each( function ( d, j ) {
                            select.append( '<option value="'+d+'">'+d+'</option>' )
                        } );
                    } );
                },
        } );

0 commentaires

-1
votes

Utilisez ce code:

 $('.btn-success').on('click',function (e) {
               //to prevent the form from submitting use e.preventDefault()
                e.preventDefault();
                var res = $("#userid").val();  
                var  sNewSource = "<?php echo base_url(); ?>myaccount/MyData_select?userid=" + res + "";
                var oSettings = ETable.fnSettings();
                oSettings.sAjaxSource  = sNewSource;
                ETable.fnDraw();
            });


0 commentaires