我有几个搜索表单,1个有~50个字段,另一个有~100个.通常,正如HTML规范所说,我使用GET方法进行搜索,因为没有数据被更改.我还没有碰到这个问题,但我想知道我是否会很快耗尽URL空间?
Internet Explorer的限制为2083个字符.其他浏览器,有更高的限制.我正在运行Apache,所以限制大约有4000个字符,IIS是16384个字符.
在100个字段中,假设平均字段名称长度为10个字符,那已经是5000个字符...在100字段表单上令人惊讶,我还没有任何错误.(25%的字段是多个选择,因此字段长度要长得多.)
所以,我想知道我的选择是什么.(缩短表格不是一种选择.)在这里我的想法:
使用POST.我不喜欢这个,因为目前用户可以为他们的搜索添加书签并在以后再次执行 - 这是一个非常好的功能.
让JavaScript循环遍历表单以确定哪些字段与默认字段不同,填充另一个表单并提交该表单.用户当然会将缩短版本加入书签.
还有其他想法吗?
另外,有人知道长度是编码长度还是纯文本?
我正在开发PHP,但它可能没有什么区别.
编辑:我无法删除任何字段; 我无法缩短表格.这是客户要求的,他们经常使用不同类别的一系列字段.我知道很难想到一个在这么多领域看起来不错的表单,但是用户在理解它的工作原理时没有问题.
您的用户实际上是否会使用所有50-100个字段进行搜索?如果他们只使用少数,为什么不将搜索发布到"中间"页面哪个header() - 将它们重定向到结果页面,只有URL中的用户更改字段?然后,结果页面将使用URL中不存在的字段的默认值.