我遇到了问题,希望有经验的人可以帮助我。
我有一个包含以下字段及其值的表:
id |类型|颜色
---- | --------- | --------
1 |裤子|蓝色
2 |裤子|绿色
3 |裤子|红
4 |衬衫|眉头
5 |衬衫|粉红色
6 |衬衫|红色
我要做的是根据所选服装的类型过滤掉颜色。
例如: 如果我只选中“裤子”复选框,则返回值''蓝色,绿色,红色。 “ 如果我只选中“衬衫”复选框,则返回值为“棕色,粉红色,红色”。 “ 但现在我想选择两个复选框,我希望结果为“蓝色,棕色,绿色,粉红色,红色。”
有谁知道我该怎么做?
注意:我的语言不是英语,如果有错误,请原谅。
使用的文件:
的index.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Checkbox</title>
<script type="text/javascript" src="jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("input[name='type']").click('change', function() {
$("#colors").html('Loading colors...');
$.post("colors.php", {type: $(this).val()}, function(valor) {
$("#colors").html(valor);
});
});
});
</script>
</head>
<body>
<p><?php require_once './types.php'; ?></p>
<p id="colors"></p>
</body>
</html>
types.php
<?php
require_once './connection.php';
$sql = "SELECT DISTINCT types FROM test";
$con = mysql_query($sql);
if (mysql_num_rows($con) === 0) {
echo '0 result(s)';
} else {
while ($row = mysql_fetch_assoc($con)) {
echo '<input type="checkbox" name="type" value="' . $row['types'] . '"> ' . $row['types'];
}
}
?>
colors.php
<?php
require_once './connection.php';
$type = $_POST['type'];
$sql = "SELECT DISTINCT colors FROM test WHERE types = '$type'";
$con = mysql_query($sql);
if (mysql_num_rows($con) === 0) {
echo '0 result(s)';
} else {
while ($row = mysql_fetch_assoc($con)) {
echo $row['colors'] . '<br>';
}
}
?>
答案 0 :(得分:0)
将复选框命名为type[]
,这样您就可以获得一系列类型。
然后将您的颜色查询调整为:
$types = "'".implode("','",array_map("mysql_real_escape_string",$_POST['type']))."'";
$sql = "SELECT DISTINCT `colors` FROM `test` WHERE `types` IN (".$types.")";