Je crée un plugin pour le résultat mysql
y compris les filtres de recherche et les commandes. J’ai créé un plugin à l’aide de certains tutoriels et les choses se passent bien pour une requête simple avec load more (youtube like).
Maintenant, j’essaie d’append des options de filtrage au plugin et de m’obtenir pour obtenir de la valeur d’une fonction à la fonction ajax();
sur changer le menu déroulant. La fonction est dans la fonction pluign.
sort_order_by = function () { var selected_val = ''; var orderby_val = ''; // check for sort order $(settings.order_by_selector).change(function () { //selected_val = $('#sort_order_by option:selected').val(); selected_val = $('option:selected', this).val(); orderby_val = (selected_val == '' || selected_val == null) ? null : selected_val; console.log(orderby_val); // this gives me result on change return orderby_val; }); return null; }, ... load = function (start, count) { console.log(sort_order_by()); // this giving me null $.ajax({ url: settings.source, type: 'get', dataType: 'json', data: {start: start, count: count, sort_order_by: sort_order_by()}, success: function (data) { var items = data.items; if (items.length) { $(items).each(function (index, value) { append(value); }); stepped = stepped + count; } if (data.last === true) { finished(); } } }); };
Comment obtenir la valeur de la fonction sort_order_by
dans les data
ajax
à définir en tant que parameters de requête
(function ($) { 'use ssortingct'; $.fn.loadmore = function (options) { var self = this, settings = $.extend({ source: '', step: 2, order_by_selector: '#sort_order_by' }, options), stepped = 1, item = self.find('.item'), items = self.find('.items'), sort_order_by = function () { var selected_val = ''; var orderby_val = ''; // check for sort order $(settings.order_by_selector).change(function () { //selected_val = $('#sort_order_by option:selected').val(); selected_val = $('option:selected', this); orderby_val = (selected_val == '' || selected_val == null) ? null : selected_val; console.log(orderby_val); }); return orderby_val; }, finished = function () { self.find('.items-load').remove(); }, append = function (value) { var name, part; item.remove(); for (name in value) { if (value.hasOwnProperty(name)) { part = item.find('*[data-field="' + name + '"]'); if (part.length) { part.text(value[name]); } } } item.clone().appendTo(items); }, load = function (start, count) { $.ajax({ url: settings.source, type: 'get', dataType: 'json', data: {start: start, count: count, sort_order_by: sort_order_by()}, success: function (data) { var items = data.items; if (items.length) { $(items).each(function (index, value) { append(value); }); stepped = stepped + count; } if (data.last === true) { finished(); } } }); }; if (settings.source.length) { self.find('.items-load').on('click', function () { load(stepped, settings.step); return false; }); load(1, settings.step); } else { console.log('Source is require'); } } }(jQuery));
Pour le code de travail voir ma réponse ci-dessous ou cliquez ici
Vue d’ensemble: j’ai réinitialisé la valeur
stepped
sur1
pour recalculer à la modification
- Passer un object à PHP via AJAX
- DataTables lit la réponse ajax avec vos propres parameters
- Liste déroulante sélectionnée de manière dynamic à l’aide de javascript lorsque la page est rechargée et changera d’une autre liste
- Problème de pagination du traitement côté serveur de Datatables
- comment recharger un bloc de code javascript