用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8715|回复: 16
收起左侧

[讨论/交流] 复杂查询有没有好的URI解决方案?

[复制链接]
发表于 2008-8-28 16:41:20 | 显示全部楼层 |阅读模式
如题~!!!!!!!
发表于 2011-12-30 16:56:46 | 显示全部楼层
我明白你的意思,你要是想在URL中传递多个参数的话,完成可以用
http://www.domain.com/class/function?pram1=XXX&pram2=XXX&pram3=XXX&pramN=XXX
这个用不着纠结吧
发表于 2010-8-27 08:49:24 | 显示全部楼层
我原来是把条件写在URI上,比如:
localhost/index.php/search/name/28/chongqing,直接用uri直接获取就OK了,
后面我又想了一个方法可以做成如下这样:
localhost/index.php/search/name-28-chongqing/,用URI直接获取搜索条件.
上面两个方法会导致URL路径都很长,我在想能不能做成一个数据直接serialize,不管怎么样我觉得用Uri比较好,缺点就是url路径太长,我个人不大赞同把条件写在session里面,比如搜索用户多了,明显效率成问题.
发表于 2008-8-28 18:09:54 | 显示全部楼层
你说的是什么意思?
 楼主| 发表于 2008-8-29 14:56:54 | 显示全部楼层
查询条件很多,如何在分页的时候传递。
 楼主| 发表于 2008-9-16 09:12:55 | 显示全部楼层
这个问题没人答啊?~!~!~!
发表于 2008-9-16 13:55:01 | 显示全部楼层
这个问题已经有好多人在讨嫌过了。我这里总结一下吧:
第一,修改CI的地址分析规则,我没有做过,不过一定可行。但是我不推荐。
第二,用系统的flash data,就是说在服务端保存临时数据,(自己用session,cookie)都行,其实这种方法是非常好的,我推荐,没有什么影响(这里有部分人,就是理想主义,不想用session,其实sesion是好方便)。
第三,在客户端用一个隐藏的form,就可以好快实现了。我说一下我的思路:
<script language="javascript">
function doPage(num){
var form = document.getElementById('form');
form.page.value = num;//为form增加一个page 的元素和值。
form.submit();
}
</script>
<form name="form" id="form" action="yoururl" method="post" style="display:none;">
<input type="text" name="keyword" id="keyword" value="$keyword"/>
......more form element...
</form>

<div class="pager">
<a href="javascript:doPage(1);">1</a>
<a href="javascript:doPage(2);">2</a>
<a href="javascript:doPage(3);">3</a>
<a href="javascript:doPage(4);">4</a>
.......
</div>
这样子,点击一个链接的时候,就像提交一个表单,CI里表单是容许中文字的吧。我重点推荐这个,我看过好多外国的网站,一般分页都是用到这样的方法,这样做是有理由的,因为凡是要用到分页的东西,都是资料列表,如果简单的用url的链接,好容易给某些人用采集器一次性把你的内容download下来,如果我们用到form,我们就可以用到好多种分安全检测方法,如我们可以生成一个verify code,设定这个code只能一次有效,就可以阻止一些非法采集了,当然,安全性是相对的,我们设计的时候要做相应的选择我设定。

第四种,就是用到第三种的变体,做成AJAX的形式,这里不说了,可以看看我的网站:http://www.faceweblog.com.cn/index.php/blog/index/itlong/5(不推荐)

评分

参与人数 1威望 +3 收起 理由
Hex + 3 精彩解答

查看全部评分

发表于 2008-9-16 15:08:51 | 显示全部楼层
楼上的回答真精彩,加分。
发表于 2008-9-16 18:58:15 | 显示全部楼层
我怎么觉得有点简单问题复杂化。。。。。

直接查询的时候返回offset后的结果不就可以了吗?
 楼主| 发表于 2008-9-16 20:17:42 | 显示全部楼层
楼上能具体点吗?~!
发表于 2010-8-24 10:48:40 | 显示全部楼层
还有更好办法?等待中。。。。
发表于 2010-8-24 11:07:24 | 显示全部楼层
参考论坛的搜索uri形式,现在比脚流行的一种
把搜索条件保存到数据库或者服务端文件,将其哈希值或序号放入uri
翻页的时候根据这个segment就能获取完整的搜索条件

或者将搜索条件序列化成一个字串,保存在uri中,每次反序列化就得到完整条件

本版积分规则