过滤PHP中的AJAX复选框的结果

时间:2013-07-12 13:11:32

标签: php arrays comparison

我的系统前端有一些复选框,用户可以选中这些复选框来过滤数据库结果的结果。有6个复选框。

在数据库中,每个配置文件可以分配一个或多个这些复选框值,因此通过单击复选框,用户可以过滤许多配置文件,每个配置文件都必须包含当前勾选的复选框。

我的问题是我有一半工作,但似乎无法弄清楚如何完成它的逻辑。那里似乎仍然存在不匹配的值:

        $pieces = explode(", ", $row['competency']);
        foreach(array_keys($_POST['competencyFilter']) as $filter){ //each chosen
            if(in_array($filter, $pieces)){ //if this chosen is in the db
                if(in_array($row['ID'], $resultList)){
                }else{
                    $resultList[] = $row['ID'];
                }
            }else{
                if(($key = array_search($row['ID'], $resultList)) !== false) {
                    unset($resultList[$key]);
                }
                //continue 2;
            }   
        }

我不确定这里的逻辑是否太复杂了我想要的东西,但目前它循环遍历复选框中当前勾选的所有值,并且对于每个值,如果它存在于配置文件中,它会添加配置文件ID到数组。

问题是,即使勾选了不在该配置文件中的复选框,某些配置文件ID仍保留在最终数组$ resultList []中。

我希望这是有道理的......

修改

以下是存储在数据库中的每个配置文件中的数组数据(显然每个配置文件将包含不同的值,但总共有6个):

thermXMbb,thermXPbb,thermXMrf,thermXPrf,..,..

共有6个,还有6个复选框,每个复选框一个。

0 个答案:

没有答案