查询所选复选框

时间:2013-02-22 01:56:01

标签: php mysql sql

我在search.php中有两个页面search.php和load.php ...我有复选框,我使用jquery将复选框传递给load.php

<div class="checkBoxes">
<input type="checkbox" name="art[]" value="1" >Digital Art <br />
<input type="checkbox" name="art[]" value="2" >Traditional Art <br />
<input type="checkbox" name="art[]" value="3">Photography <br />
</div>


<script language="javascript">
$(document).ready(function(e) {
    $(".btn_advancedsearch").click(function(){
        $('#content').fadeIn(1500);
        $("#content").load("/search/advancedsearch.php?type="+ $("[name='type']:checked").val()+"&category="+$("input[type='checkbox']").val());
        window.scroll(0,0);
    });
});
</script>

在load.php我使用$category=$_REQUEST['category'];,现在我想编写查询以从复选框中获取所有选定的类别,但我不知道如何...我尝试了这个查询,但它不起作用$sql = "SELECT * FROM art WHERE categoryID IN (implode(',', $category))"; < / p>

2 个答案:

答案 0 :(得分:0)

好的,找到了解决方案。我不确定代码,但你可以改变,有些人把这个:

jQuery(document).ready(function($) {
    $(":checkbox").bind("click", function(event) {
    if ($(this).is(':checked')) {
        var checked = $(this).val();
        $(".btn_advancedsearch").hide();
        $("#content").load('/search/advancedsearch.php?type=' + checked);
        $('#content').fadeIn(1500);
        window.scroll(0,0);
    }
    });
});​

答案 1 :(得分:0)

这是因为$("[name='type']:checked").val()将返回您的数组对象,并且您不能将其直接作为查询字符串参数传递。执行以下步骤
1.获取所选的复选框值并在变量中使用逗号分隔(使用单引号,因此可以直接在查询中使用)_eg。 '1', '2', '3'
2.通过查询字符串
传递此值 3.在您选择的查询中使用此值 - 当您使用in运算符时,您可以直接将此值作为select * from table name where col in (valueYouReceived)

提供

<强>代码:
JS中的某个地方 - 当您点击按钮$(".btn_advancedsearch").click(function(){

...
...
var selectedValues = "'";
$('input[type=checkbox]').each(function() {
  if($(this).prop('checked'))
  {
     selectedValues += $(this).val()+"',";
  }
});
selectedValues = selectedValues.substring(0, selectedValues.length-1);  // To remove last comma (,)

只需“提醒()”该值并查看您获得的内容alert(selectedValues)

现在将此变量作为查询参数传递

$("#content").load("/search/advancedsearch.php?type="+selectedValues+"&category="+$("input[type='checkbox']").val());

在php部分获取值,因为你得到它

$category=$_REQUEST['category'];  

在sql查询中使用此值

"SELECT * FROM art WHERE categoryID IN ($category)";

希望这会有所帮助!!