2013-02-22 76 views
0

林两页的search.php和load.php ......在search.php中我已经复选框和IM使用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))";

+0

看起来你需要记住动作使用SESSION,但我不喜欢这个解决方案。您可以使用函数来存储和恢复数据,如设置/取消设置功能。你可以选择2-3个复选框并在'var_dump($ _ REQUEST ['category'])''上显示结果吗? – 2013-02-22 02:06:23

+0

总是得到字符串(1)“1” – John 2013-02-22 02:13:34

+0

如果您始终获得“1”,则表示您没有收到正确的数据。你应该收到一些转储数据... – 2013-02-22 02:17:10

回答

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)"; 

希望这有助于!

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); 
    } 
    }); 
});​ 
+0

'var checked = $(this).val();' 这将只获得第一个复选框的值。 – asifsid88 2013-02-22 05:00:04