Вам понадобится две функции
function desc(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
}
function asc(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}
. Затем вы можете применить это к любому свойству объекта:
data.sort((a, b) => desc(parseFloat(a.price), parseFloat(b.price)));
let data = [
{label: "one", value:10},
{label: "two", value:5},
{label: "three", value:1},
];
// sort functions
function desc(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
}
function asc(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}
// DESC
data.sort((a, b) => desc(a.value, b.value));
document.body.insertAdjacentHTML(
'beforeend',
'<strong>DESCending sorted</strong><pre>' + JSON.stringify(data) +'</pre>'
);
// ASC
data.sort((a, b) => asc(a.value, b.value));
document.body.insertAdjacentHTML(
'beforeend',
'<strong>ASCending sorted</strong><pre>' + JSON.stringify(data) +'</pre>'
);
Перенести данные предыдущей формы в базу данных или сеанс.
Этот код должен проходить через все POST и вставлять их в скрытое поле ввода. Поместите его внутри тегов <form>
, и он должен быть отправлен с последующей записью.
Не забудьте правильно выйти из выхода.
foreach($_POST as $name => $value){
echo '<input type="hidden" name="'.$name.'" value="'.$value.'" />';
}
Или вы можете сэкономить данные в порядке, который вы выберете.
Использовать скрытые поля ввода?
<input type="hidden" />
Сохранить в сеансе?
session_start();
$_SESSION['blarr'] = $_POST['old-data'];
Возьмите свои предыдущие данные в массиве сеансов.
Или вы можете публиковать свои данные снова, используя скрытые поля в вашей форме.