Les Tables De Données Côté Serveur Colonne Individuelle De Filtrage
J'espérais que quelqu'un peut m'aider avec cela. Je cours moi-même fou avec cette.
J'ai une situation où je charger les tables de données de la grille (génial!) et tout est grand. Puis-je aller à la recherche et je rencontre des problèmes. Les données renseignées dans la grille est à venir à partir de deux tables de base de données (qui est bien), mais lorsque quelqu'un effectue une recherche je n'ai aucun moyen de savoir où aller chercher les données. J'aurais besoin de savoir quels sont les critères que la recherche est sur (c'est à dire de titre ou de contact). Je vois ce que lorsque la recherche est appelée à partir du serveur via la boîte de recherche par défaut il y a des variables comme "sSearch_0", qui sont tous unset, comment préparez-vous?
Voici le code d'initialisation de la table:
oTable = $('#example').dataTable({
"bJQueryUI": true,
"bFilter": true,
"sPaginationType": "full_numbers",
"bPaginate " : true,
"bServerSide" : true,
"sAjaxSource" : "php/tabledata.php",
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0,6,8 ] },
{ "sClass": "tdCenter", "aTargets": [ 0,1,2,3,4,5,6,7,8 ] }
],
"fnServerData": function ( sSource, aoData, fnCallback ) {
aoData.push( { "name": "userid", "value": userid } );
$.getJSON( sSource, aoData, function (json) {
fnCallback(json)
});
}
});
J'ai regardé dans les options pour ajouter des données à la "fnServerData" et en fait usage que pour la première initialisation d'appel de serveur, mais je suis pas sûr de la manière de l'utiliser pour un prochain appel de serveur. J'ai essayé d'utiliser "fnFilter" mais je ne vois pas que l'exécution d'un appel de serveur pour plus de données. À ce stade, je ne vois pas d'autre moyen d'exécuter un appel de serveur en plus de la boîte de recherche par défaut et je vois une certaine manière de connaître quelle colonne de la recherche d'.
Quelqu'un peut-il m'aider et de me diriger dans la bonne direction?
Êtes-vous à l'aide de la fonction "rechercher tous les" fonctionnalités, ou une seule colonne de recherche? Pour la recherche de tous, vous aurez à écrire le code à la recherche de chacun de vos colonnes de deux tables différentes. Si c'est une colonne de recherche, vous pouvez faire correspondre les sSearch_x (x = index de colonne d'habitude) sur votre index de colonne.
J'ai été en utilisant la fonction "rechercher tous les" fonctionnalités qui sort de la boîte. Je ne sais pas comment mettre en place une seule colonne de la recherche, j'aimerais obtenir que le travail. Comment procédez-vous?
OriginalL'auteur ackerchez | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
Si vous obtenez des données à partir du serveur pour les tables de données du plugin, vous devez définir bServerSide pour de vrai, de définir la sAjaxSource à l'URL appropriée, et, idéalement, configurer fnServerData si vous avez besoin de faire des rappels.
Si vous utilisez le traitement côté serveur, le tri, le filtrage, et la pagination doit être géré par vous sur le serveur. Si vous configurez les tables de données correctement, il demande des données à partir du serveur de tout temps il y a un échange, de filtrage, de tri événement.
Les tables de données côté serveur documentation de l'API
PHP exemple de traitement côté serveur
OriginalL'auteur DarrellNorton
Pour le bénéfice de tous ceux qui se réfèrent à cette question, voici ce que j'ai mis en œuvre.
Côté Client (JavaScript)
Exécuter fnFilter en appuyant sur la touche Enter.
Côté Serveur (Ruby)
Trouver le sSearch_(int) param de hachage, et de récupérer l'index de colonne de la clé.
Obtenir les noms de colonne d'un tableau et de construire la chaîne de recherche.
OriginalL'auteur Geordee Naliyath