我目前正在开发表格布局。 这些表在PHP中使用了一个paginator和一个过滤器函数。
所有值都作为GET参数传输。
例如,分页器将使用& limit = 20& page = 5。 过滤器构建在thead中的表行作为输入字段。 我的意思是每列都有自己的输入字段。
单击提交按钮后,它会通过GET将数据传递给自己,因此下一页面视图将正确查询/过滤数据。
例如,如果我想过滤邮政编码,网址将如下: &安培;限制= 20&安培;页= 5&安培;邮政编码= 5
因为我允许像%5%这样的搜索显示所有的邮政编码,其中5的结果不仅限于5。它将显示在该值的任何位置具有5的所有数据。
但是,如果我想过滤显示58的所有结果的邮政编码,我将输入%58%。不幸的是,根据网址编码,网址不会像预期的那样是& postcode =%58%。它将是& postcode = X%。
问题是,是否有可能在URL中获取正确的值?
问题出在浏览器级别上。如果我将URL从& postcode = X%更改为& postcode =%58%直接并按Enter键,Chrome会立即将其转换为X%。
也许它可能以某种方式使用meta标签,http标头或Javascript等。
我是通过GET而不是POST来做的,因为它显然更容易与分页器集成。
抱歉我的英语不好。任何帮助将不胜感激。
非常感谢。
答案 0 :(得分:2)
你应该逃避“%”符号本身(即“%25”)。 PHP应该足够聪明,可以自动解码。
因此&postcode=%2558%25
应该变为$_GET['postcode']
,PHP将对其进行解码,以便'%58%'
为function a() {
alert('A!');
return function(){
alert('B!');
};
}
a = a();
a();
。
答案 1 :(得分:1)
在将值插入参数之前,您应该urlencode。
总的来说,如果您使用的是mysql,我同意billrichards。
答案 2 :(得分:0)
由于您提到%%搜索,我假设您使用MySQL或其他SQL后端来查询数据。在这种情况下,我建议将查询字符串始终格式化为postcode = 58& page = 1,并添加一些其他参数以指示它是否应该是%通配符%搜索或完全匹配,如果通配符参数在那里,添加执行查询时后端的%%。