Как получить значения атрибутов min & max из базы данных, чтобы ссылаться на слайдер цены
-
16-10-2019 - |
Вопрос
Я реализовал это Слайдер jQuery в моей форме расширенного поиска.
В настоящее время у меня есть произвольные значения MIN и MAX.
Как я бы установил значение MIN как минимальное значение моей базы данных и наоборот для максимума?
var slider = {
$: jQuery,
initSpace: function (el) {
slider.el = slider.$(el);
slider.el.children().hide();
slider.el.append('<span class="search-min">Start</span>' +
' to <span class="search-max">End</span>' +
'<br><div class="slider"></div>').width('400px');
},
initSlider: function () {
var params = {
range: true,
min: 11, //--------------arbitrary
max: 240, //---------------arbitrary
values: [11, 240],
slide: function (event, ui) {
slider.el.find('.search-min').html(Math.floor(ui.values[0] / 12) + '\' ' + (ui.values[0] - (12 * Math.floor(ui.values[0] / 12))) + '"');
slider.el.find('.search-max').html(Math.floor(ui.values[1] / 12) + '\' ' + (ui.values[1] - (12 * Math.floor(ui.values[1] / 12))) + '"');
slider.$(slider.el.children('input')[0]).val(ui.values[0]);
slider.$(slider.el.children('input')[1]).val(ui.values[1]);
}
};
slider.$('.slider').slider(params);
}
};
Решение
Вы можете получить минимум максимальную цену, как это:
$minCollection = Mage::getModel('catalog/product')->getCollection()
->addMinimalPrice()
->addFinalPrice()
->setPage(1,1)
->addAttributeToSort('price', 'asc');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($minCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($minCollection);
$minPrice = $minCollection->getFirstItem()->getFinalPrice();
$maxCollection = Mage::getModel('catalog/product')->getCollection()
->addMinimalPrice()
->addFinalPrice()
->setPage(1,1)
->addAttributeToSort('price', 'desc');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($maxCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($maxCollection);
$maxPrice = $maxCollection->getFirstItem()->getFinalPrice();
Я рекомендую вместо минимальной цены использовать 0 (ноль). Выглядит лучше для клиентов. А для максимального значения не используйте то, что вы получаете из своей базы данных (примерно 455,95). Завершите его, по крайней мере, из 10 из 10 (так что это может быть 460,00 вместо 455,95). Снова для маркетинговых целей.
Не связан с magento.stackexchange