У меня есть пара поисковых форм, 1 с ~ 50 полями, а другая с ~ 100. Обычно, как говорит спецификация HTML, я выполняю поиск по методу GET, поскольку никакие данные не изменяются. Я еще не сталкивался с этой проблемой, но мне интересно, скоро ли у меня закончится URL-адрес?Используйте GET или POST для поиска.
Предел Internet Explorer составляет 2083 знаков. Другие браузеры имеют much higher limit. Я запускаю Apache, поэтому ограничение составляет около 4000 символов, IIS - 16384 символов.
На 100 полей, скажем, среднее имя поля длиной 10 символов, это уже 5000 символов ... удивительно в форме поля 100, у меня еще не было никаких ошибок. (25% полей являются множественными выборами, поэтому длина поля намного длиннее.)
Итак, мне интересно, какие у меня варианты. (Сокращение форм - это не вариант.) Здесь мои идеи:
- Используйте POST. Мне это не нравится, потому что на данный момент пользователи могут добавлять закладки в свои поиски и выполнять их позже - действительно приятная функция.
- Есть ли JavaScript в форме, чтобы определить, какие поля отличаются от значений по умолчанию, заполнить другую форму и отправить ее. Пользователь, конечно же, закроет сокращенную версию.
Другие идеи?
Кроме того, знает ли кто-нибудь, является ли длина закодированной длиной или просто текстом?
Я развиваюсь на PHP, но это, вероятно, не имеет значения.
Редактировать: Я не могу удалить все поля; Я не могу укоротить форму. Это то, о чем попросил клиент, и они часто используют ряд полей в разных категориях. Я знаю, что трудно думать о форме, которая выглядит хорошо с этим множеством полей, но у пользователей нет проблем с пониманием того, как это работает.
Если вы выбираете этот метод, убедитесь, чтобы вернуть ответ «303 См. другой» из POST, чтобы заставить браузер получить перенаправленный запрос с помощью GET. В противном случае он может попытаться выполнить POST для перенаправленного URL. – 2008-11-18 00:47:54