#javascript #arrays
#javascript #массивы
Вопрос:
Я хочу добавить и задать параметры для строки запроса с тем же ключом и другим значением.
url.com/product.php?order=price.lowamp;order=quantity.low
таким образом, существует один и тот же ключ, называемый order, с другим значением.
я создал несколько переключателей для изменения сортировки продукта.
и добавьте прослушиватель событий следующим образом :
function lowQRadio() {
document.getElementById("radio-qlow").checked=true;
params.set("order","quantity.low");
window.location.href=(location.pathname '?' params);
}
function highQRadio() {
document.getElementById("radio-qhigh").checked=true;
params.set("order","quantity.high");
window.location.href=(location.pathname '?' params);
}
function lowPRadio(){
document.getElementById("radio-plow").checked=true;
params.set("order","price.low");
window.location.href=(location.pathname '?' params);
}
function highPRadio(){
document.getElementById("radio-phigh").checked=true;
params.set("order","price.high");
window.location.href=(location.pathname '?' params);
}
некоторая переменная, определенная выше этого кода, и вот переменные:
let url = new URL(window.location.href);
let params = new URLSearchParams(url.search);
if(params.has("order")){
var aflag=params.getAll("order");
console.log(aflag.length);
if(aflag[aflag.length-1]==="quantity.low" || aflag[aflag.length-2]==="quantity.low") {
document.getElementById("radio-qlow").checked = true;
}
else if(aflag[aflag.length-1]==="quantity.high" || aflag[aflag.length-2]==="quantity.high"){
document.getElementById("radio-qhigh").checked=true;
}
else if(aflag[aflag.length-1]==="price.low" || aflag[aflag.length-2]==="price.low"){
document.getElementById("radio-plow").checked=true;
}
else if(aflag[aflag.length-1]==="price.high" || aflag[aflag.length-2]==="price.high"){
document.getElementById("radio-phigh").checked=true;
}
поэтому я хочу, чтобы, когда пользователь выбирал сортировку по цене и количеству, оба этих переключателя были проверены, а запрос изменен, и если пользователь выберет один из методов сортировки, был установлен только один параметр, а если выбрать другой, оба из них будут проверены, и страница будет обновлена
php-код или серверная часть работали, но js-код работает только для одного типа переключателей, и оба вида не работают!!
пожалуйста, помогите мне исправить это, спасибо с уважением
Ответ №1:
Строка запроса представляет собой набор пар имя-значение. Имена должны быть уникальными. Вы хотите сделать что-то вроде url.html ?OrderBy=col1,col2,col3
Используйте строку с разделителями в качестве значения параметра строки запроса, затем в вашем php-коде разделите значение и используйте логику для применения порядка.
Комментарии:
1. url.com?product.php?заказ=цена. низкий и порядок = количество. высокая, серверная часть работает
2. Не пишите что-то, что противоречит тому, как должна работать строка запроса.