我正在通过 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 的“字符串”名为“产品”的列...所以我正在那里搜索“汽车”的值...但是我还没有完成,第二个过滤器是指数据库中“价格”列的数字过滤器。所以我正在获取它的值并将其添加到查询中。所以我最终会选择所有价格大于 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']){”...
修改代码的任何想法?
谢谢!