【发布时间】:2010-10-04 04:15:03
【问题描述】:
我正在通过 AJAX 向 PHP 文件发送一些数据。这是关于过滤器选项的。无论如何,我是这样发送的:
filter[0][data][type] string
filter[0][data][value] automobiles
filter[0][field] product
filter[1][data][type] numeric
filter[1][data][value] 6000
filter[1][field] price
以上内容取自 FireBug 控制台。然后,在 PHP 中:
$filter = $_POST['filter'.$i];
if (is_array($filter)) {
for ($i=0;$i<count($filter);$i++){
switch($filter[$i]['data']['type']){
case 'string' :
// I'm doing my select from database based on that and so on
所以,这个翻译应该是: “从数据库中获取所有记录:嗯,让我们检查过滤器...我得到第一个过滤器类型,它是“字符串”,它需要应用于名为 mysql 的列“产品”......所以我在那里搜索“汽车”的值......但我还没有完成,第二个过滤器是指数据库中“价格”列的数字过滤器。所以我' m 获取它的值并将其添加到查询中。所以我最终会选择所有价格大于 6000 的汽车。
到目前为止一切顺利。问题是我获取数据的方式已经改变,我不能再以这种格式发送我的数据了。新格式是一个如下所示的 URL:
filter[0][field]=prodct&filter[0][data][type]=string&filter[0][data][value]=automobiles&filter[1][field]=price&filter[1][data][type]=numeric&filter[1][data][value]=6000
我可以通过“&”对这个进行爆炸并最终得到一个数组...我可以做很多...问题是我不知道如何将我的查询构建脚本调整为使用那种接收到的数据..这样我就可以再次执行“switch($filter[$i]['data']['type']){”...
对修改代码有什么想法吗?
谢谢!
【问题讨论】:
-
为什么要将数据发送到 url 中的 ajax 脚本?您不能发布数据并完全绕过该步骤吗?