【问题标题】:filtering values (php + jquery)过滤值(php + jquery)
【发布时间】:2013-11-05 02:13:35
【问题描述】:

我有一个问题,希望有更多经验的人可以帮助我。

我有一个包含以下字段及其值的表格​​:

标识 |类型 |颜色
----|------------|--------
1 |裤子 |蓝色
2 |裤子 |绿色
3 |裤子 |红色
4 |衬衫 |眉头
5 |衬衫 |粉红色
6 |衬衫 |红色

我要做的是根据所选服装类型过滤掉颜色。

示例: 如果我只选中复选框“pants”,则返回值​​''蓝色、绿色、红色。 " 如果我只选择复选框“衬衫”,则返回值​​''棕色,粉红色,红色。 " 但现在我想选中这两个复选框,我希望结果是“蓝色、棕色、绿色、粉色、红色”。

有人知道我该怎么做吗?

注意:我的语言不是英文,如有错误请见谅。

使用的文件:

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>';
    }
}

?>

【问题讨论】:

    标签: php jquery


    【解决方案1】:

    将您的复选框命名为type[],这将允许您获取类型数组。

    然后将您的颜色查询调整为:

    $types = "'".implode("','",array_map("mysql_real_escape_string",$_POST['type']))."'";
    $sql = "SELECT DISTINCT `colors` FROM `test` WHERE `types` IN (".$types.")";
    

    【讨论】:

    • 哇,光速响应。感谢朋友的帮助。
    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多