Как сделать, чтобы параметры типа f=0 не передавались через GET?

Asar
На сайте с 23.08.2004
Offline
322
1024

Есть форма, где можно выбрать много параметров для выдачи из каталога -- число записей, сортировку, тип товара и т.д. Без параметров УРЛ типа site.ru/catalogue/ С параметрами -- типа site.ru/catalogue/?y=0&u=0&s=4&f=0 и т.д. При этом, если убрать все нулевые значение и оставить только site.ru/catalogue/?s=4, результат будет тем же, ибо нули отвечают за дефолтные значение.

Ссылки из этого каталога распространяются как неестественно, так и естественно. При этом хотелось бы, чтобы они шли все-таки покрасивше, т.е. как site.ru/catalogue/?s=4, а не как длинный вариант. Но любой юзверь просто тупо скопирует ссылку, где будут нули и поставит ее как есть себе на сайт.

Вопрос: Есть ли какие способы, чтобы нулевые параметры в адресную строку не выставлять? И стоит ли оно того или же забить и оставить везде длинные варианты?

A1
На сайте с 05.07.2008
Offline
34
#1

в php сделайте соответвтующую проверку на равенства нулю. В перспективе ссылки должны склеиться, так что можете не париться.

Asar
На сайте с 23.08.2004
Offline
322
#2

А что толку от проверки? Или редирект ставить после кнопки обновления выборки?

xpert13
На сайте с 15.09.2008
Offline
127
#3

Помоему только через яву. Написать скрипт который будет запускатся при нажатии кнопки и создавать ссылку выбрасывая с неё все нули и потом уже открывать

UPD

А вообще лучше через мод реврайт всё это дело в ЧПУ красиво перевести, правда там прийдётся над правилами посидеть чтобы было так как надо

Asar
На сайте с 23.08.2004
Offline
322
#4

Как можно красиво вывести вот такую строку: site.ru/catalog/?sort=5&qua=500&auth=128&fem=res&search=example ?.. Т.е. на уровне site.ru/catalog/item1/ все Ок, но для длинных выборок...

J
На сайте с 02.02.2009
Offline
53
#5
Asar:
Есть форма, где можно выбрать много параметров для выдачи из каталога -- число записей, сортировку, тип товара и т.д. Без параметров УРЛ типа site.ru/catalogue/ С параметрами -- типа site.ru/catalogue/?y=0&u=0&s=4&f=0 и т.д. При этом, если убрать все нулевые значение и оставить только site.ru/catalogue/?s=4, результат будет тем же, ибо нули отвечают за дефолтные значение.
Ссылки из этого каталога распространяются как неестественно, так и естественно. При этом хотелось бы, чтобы они шли все-таки покрасивше, т.е. как site.ru/catalogue/?s=4, а не как длинный вариант. Но любой юзверь просто тупо скопирует ссылку, где будут нули и поставит ее как есть себе на сайт.
Вопрос: Есть ли какие способы, чтобы нулевые параметры в адресную строку не выставлять? И стоит ли оно того или же забить и оставить везде длинные варианты?

На уровне PHP можно сделать при выводе ссылки через буферизацию

ob_start();

....

$buffer = ob_get_clean();

... заменить в $buffer по регулярке всё в ссылках, где нулевой параметр

echo $buffer;

А, невнимательно прочитал

Не присваивайте просто 0 в значение в этой форме

Asar
На сайте с 23.08.2004
Offline
322
#6
jumash:

А, невнимательно прочитал
Не присваивайте просто 0 в значение в этой форме

Дык, тогда будет строка вида ?g=&s=&tt= что ничем не лучше... Или будет записываться коммент типа ?g=Все+товары ...

J
На сайте с 02.02.2009
Offline
53
#7

пустой get по-моему не отправляется

[Удален]
#8

Не отправляется, но в УРЛе он есть. А ТС именно из урла хочет это выкинуть.

Просто отправляйте форму яваскриптом. Если параметр нулевой - не добавляйте его в запрос. Делов то. Хотя для того чтобы такие страницы индексировались, на них нужно еще где то ссылку ставить (ПС не отправляют формы)

Asar
На сайте с 23.08.2004
Offline
322
#9

Ок, спасибо всем за ответы. Видать, только через JS. По поводу индексации -- понятное дело, что ссылку ставить, хоть с JS, хоть без него.

S
На сайте с 13.08.2008
Offline
35
#10

А если делать проверку при сабмите и дефолтные поля выключать

function onsubmit() {

document.getElementById('idelement').disabled=true;

}

короче disabled="disabled"

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий