如何基于多个复选框进行搜索

时间:2014-10-07 05:30:05

标签: php sql

我有一个带有复选框的表单,我希望在sql表中进行搜索。

<input name="pc[]" type="checkbox" value="1">I  &nbsp &nbsp &nbsp   
<input name="pc[]" type="checkbox" value="2">II  &nbsp &nbsp &nbsp   
<input name="pc[]" type="checkbox" value="3">III

如果勾选了复选框1,那么查询应该是这样的

$result=$mysql_query="SELECT * FROM students1 WHERE PartCode IN ('1') "; 

如果勾选了复选框1和2,那么查询应该是这样的

$result=$mysql_query="SELECT * FROM students1 WHERE PartCode IN ('1', '2') "; 

为此,我编写了以下代码。但它不起作用。

$ad = implode ("','",$_POST['pc']); 
$result=mysql_query("SELECT * FROM students1 WHERE PartCode IN ('$ad') "); 

如何编辑代码?

2 个答案:

答案 0 :(得分:0)

从查询中删除$ad的引号。此外,您的内爆不会将值括在引号内。请尝试使用以下代码:

$ad  = "'" .implode("', '", $_POST['pc']) . "'";   // outputs '1', '2' etc
$result=mysql_query("SELECT * FROM students1 WHERE PartCode IN ($ad) ");

答案 1 :(得分:0)

<input name="pc[]" type="checkbox" value="1">I  &nbsp &nbsp &nbsp   
<input name="pc[]" type="checkbox" value="2">II  &nbsp &nbsp &nbsp   
<input name="pc[]" type="checkbox" value="3">III

<script>

jQuery("input[type=checkbox]").click(function(){
        var selectedCheckBoxArray = new Array();
        var n = jQuery("input[type=checkbox]:checked").length;
        if (n > 0){
            jQuery("input[type=checkbox]:checked").each(function(){
                selectedCheckBoxArray.push($(this).val());
            });
            //send check box data value array to server using Ajax

            $.ajax({
                    type: "POST",
                    url: "server_file.php",
                    data: { myCheckboxes:selectedCheckBoxArray },
                    success: function(data){
                        $('#myResponse').html(data);
                    }
            });

        }

    });
</script>