我在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>
答案 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)";
希望这会有所帮助!!