Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > HTML форма => ЧПУ


Автор: Rikkit 19.7.2011, 11:06
Есть HTML форма:
Код

<form action="/admin/catalog" method="GET">
    Выберите каталог
    <select name="cat">
        <option value="2154">AC </option>
        ....
    </select>
    <input type="submit" value="Выбрать"/>
</form>


При нажатии Выбрать откроется страница /admin/catalog?cat=2154
Нужно чтоб открывалась /admin/catalog/2154

Есть ли способы сделать это?
Javascript не хочется использовать, т.к. у меня много подобных форм.
Редиректы и реврайты не так плохо, но тоже хотелось бы без них.

Такие формы у меня присутствуют на разных страницах в великом множестве, так что хотелось бы узнать наиболее элегантный способ.

Автор: iff 19.7.2011, 12:19
Код

<form action="/admin/catalog" onsubmit="document.location.href = this.action + '/' + this.cat.value; return false;">
    Выберите каталог
    <select name="cat">
        <option value="2154">AC </option>
        ....
    </select>
    <input type="submit" value="Выбрать"/>
</form>


Добавлено через 2 минуты и 39 секунд
Цитата(Rikkit @  19.7.2011,  11:06 Найти цитируемый пост)
много подобных форм

Вот скрипт, который заставит все формы работать так.
Код

window.onload = function () {
    for (var i = 0; i < document.forms.length; i++) {
        document.forms[i].onsubmit = function() {
            document.location.href = this.action + "/" + this.cat.value;
            return false;
        };
    };
};

Этогт скрипт можно записать в отдельный файл и подключить к web-страницамъ


Можно например добавить свойство class к форме, и делать условие что-бы отличить данные формы выбора каталога от других

Автор: Rikkit 19.7.2011, 12:33
Цитата(iff @ 19.7.2011,  12:19)
Код

<form action="/admin/catalog" onsubmit="document.location.href = this.action + '/' + this.cat.value; return false;">
    Выберите каталог
    <select name="cat">
        <option value="2154">AC </option>
        ....
    </select>
    <input type="submit" value="Выбрать"/>
</form>


Добавлено @ 12:22
Цитата(Rikkit @  19.7.2011,  11:06 Найти цитируемый пост)
много подобных форм

Вот скрипт, который заставит все формы работать так.
Код

window.onload = function () {
    for (var i = 0; i < document.forms.length; i++) {
        document.forms[i].onsubmit = function() {
            document.location.href = this.action + "/" + this.cat.value;
            return false;
        };
    };
};

Этот скрипт можно записать в отдельный файл и подключить к web-страницамъ


Можно например добавить свойство class к форме, и делать условие что-бы отличить данные формы выбора каталога от других

Благодарю, это вполне приемлемый вариант

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)