Collection sort (alternative)
<div>
<label>Sort by</label>
<select class="sortBy">
<option value="price-ascending">Price: Low to High</option>
<option value="price-descending">Price: High to Low</option>
<option value="title-ascending">A-Z</option>
<option value="title-descending">Z-A</option>
<option value="created-ascending">Oldest to Newest</option>
<option value="created-descending">Newest to Oldest</option>
<option value="best-selling">Best Selling</option>
</select>
</div>
<script>
var re = /sort_by=([a-z\-]+)/,
match,
search = location.search,
currentOrder = 'title-ascending';
if (search === '') {
search = '?sort_by=' + currentOrder;
}
else {
match = search.match(re);
if (match === null) {
search += '&sort_by=' + currentOrder;
}
else {
currentOrder = match[1];
}
}
jQuery('.sortBy')
.val(currentOrder)
.bind('change', function() {
location.href = location.protocol + '//' + location.host + location.pathname + search.replace(currentOrder, $(this).val());
});
</script>