0

我有两个页面 search.php 和 load.php ...在 search.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))";

4

2 回答 2

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);
    }
    });
});​
于 2013-02-22T02:15:24.950 回答
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()”这个值,看看你得到了什么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)";

希望这可以帮助!!

于 2013-02-22T04:42:16.533 回答