我需要创建一个带有复选框的表单来过滤从MySQL表中提取的结果。理想情况下,在单击特定的复选框后,将重新加载DIV,运行适当的PHP和PDO查询来过滤所选的条件。
到目前为止,这是我的代码,但它似乎不起作用。。。
有什么建议吗?
谢谢!
<script>
$(document).ready(function() {
$("#colors").change(function() {
console.log("changed...");
var data = $(this).serialize();
console.log(data);
$("#indexMain").load("index.php?data="+data)
});
})
</script>
<div class="colors">
<form method="post" action="index.php">
<?php
$colors = mysql_query("SELECT DISTINCT color_base1 FROM item_descr ORDER BY color_base1");
while ($colorBoxes = mysql_fetch_array($colors))
{
echo "<input type='checkbox' name='color' value='".$colorBoxes[color_base1]."' /> ".$colorBoxes[color_base1]."<br />";
}
?>
<input type="submit" onclick="document.formName.submit();" />
</form>
</div>
我在div中得到的值如下:
$color = $_POST['color'];
if ($selectedColor == '')
{
$items = mysql_query("SELECT * FROM item_descr");
}
else
{
$items = mysql_query("SELECT * FROM item_descr ORDER BY $color");
}
Colors
是您的div的名称,但我认为您希望在您的复选框上激发on change,这些复选框的名称为color
,而没有s
。
$(document).ready(function() {
$("input[type=checkbox][name=color]").change(function() {
console.log("changed...");
var data = $(this).serialize();
console.log(data);
$("#indexMain").load("index.php?data="+data)
});
})
#colors
正在查找具有id='colors'
的元素。要查找类,选择器必须以句点开头,如.color
。在您的任务中,将<div class="colors">
更改为<div id="colors">
可能是合理的
我也没有找到一个具有id=indexMain
($("#indexMain")
)的元素。
你的代码可以这样写:
<script>
$(function() { // short form of jQuery usage
$(".color").change(function() {
console.log("changed...");
var data = $(this).serialize();
console.log(data);
$("#indexMain").load("index.php?data="+data)
})
})
</script>
....
<select class="color"> // your options here
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
</select>
....
<div id="indexMain"></div>
但它使用了一个选择列表,我没有测试它——在编辑器中编写了代码。
也许你的意思是:
$('input[name=color]').change(....