0

私は問題を抱えており、より多くの経験を持つ誰かが私を助けてくれることを願っています.

次のフィールドとその値を含むテーブルがあります :

ID | タイプ | 色
----|---------|--------
1 | パンツ | 青
2 | パンツ | 緑
3 | パンツ | 赤
4 | シャツ | 眉
5 | シャツ | ピンク
6 | シャツ | 赤

私がやろうとしているのは、選択した衣服の種類に応じて色を除外することです.

例: チェックボックス「パンツ」のみを選択した場合、返される値は青、緑、赤です。" 「シャツ」チェックボックスのみを選択すると、戻り値 ル "が、ここで2つのチェックボックスを選択して、結果を "ブルー、ブラウン、グリーン、ピンク、赤。"

誰も私がこれを行う方法を知っていますか?

注: 私の言語は英語ではないため、エラーがある場合はご容赦ください。

使用したファイル:

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

?>

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

?>
4

1 に答える 1

0

あなたのチェックボックスに名前を付けてくださいtype[]。これにより、タイプの配列を取得できます。

次に、カラー クエリを次のように調整します。

$types = "'".implode("','",array_map("mysql_real_escape_string",$_POST['type']))."'";
$sql = "SELECT DISTINCT `colors` FROM `test` WHERE `types` IN (".$types.")";
于 2013-11-04T18:13:35.237 に答える