2012-10-17 41 views
0

比方说,我想用chosen jQuery多来创建搜索表单&选择在数组搜索的URL查询中显示的最佳做法是什么?

我会用$_GET保持查询分页。比如我选择的形式

<select name="q[]" data-placeholder="Please Select" multiple> 
    <optgroup label="Choose a Location"> 
    <option value="l_1">Location A</option> 
    <option value="l_2">Location A</option> 
    </optgroup> 
    <optgroup label="Choose a Type"> 
    <option value="t_1">Type A</option> 
    <option value="t_2">Type B</option> 
    </optgroup> 
    <optgroup label="Choose a Room"> 
    <option value="r_1">Room A</option> 
    <option value="r_2">Room B</option> 
    </optgroup> 
</select> 

URL查询http:/domain.com/search/?q[]=l_1&q[]=t_1&q[]=t_2&q[]=r_1&q[]=r_2

有有另一种选择的网址将应该怎么样子?

+0

您似乎有三个不同的问题。你为什么使用单一输入?这看起来像三个无线电组的工作,而不是一个选择。 – Quentin

回答

1

还有另外一个选项,该网址应该如何显示?

否。生成的URL将为field_name = value,并且将为每个值重复。

这是表格如何工作。浏览器知道如何生成它们。服务器端表单数据解析器知道如何处理它们。

网址是工具。他们不需要成为艺术作品。特别是当他们从用户输入生成时。

+0

如果我将查询转换为序列化,这很好吗? –

+0

我*想*你在问“如果我使用jQuery的'form.serialize()'方法,那会起作用吗?”。如果是这样,那么是的,它会生成与正常表单提交相同的URI。 – Quentin

0

GET将使用您的元素的名称,即p []。如果你不喜欢方括号,把它们拿出来。

search/?q=l_1&q=l_2 

你可以,如果需要的话,可以使用Friendly URL Rewriting让你的链接看起来更加赏心悦目(更好地为搜索引擎优化的性能)。我不确定搜索页面会有多么有用...

+2

'[]'把GET变量变成一个数组(至少在PHP中),如果你删除它们,你只会得到最后一个'q'值的值(至少在PHP中)。 –

相关问题