duangan9251 2016-10-12 01:54
浏览 25

DropDown列表不显示子类别级别

I have a mySql Table, with categories and subcategories. They are distinguished by "Master" number, where master 0 is relativeto options on the first dropDown , and the nexts dropdowns are are defined according with their dependencies. For example: if have an option in the first Dd with name A and id 1 and i want an option on second Dd dependent from A , i say that the option with name AA with the id 110 has a "master" 1, the same for the item AB id 111 and master 1 and item AC id 112 and master 1.

Now, i can get all the options id master number equal to 0, which is intended, but for the next drop downs, i cant get it right. i can't get any values attributed to them, either wrong, or right.

Here is my index code:

<?php

try {

    $objDb = new PDO('mysql:host=localhost;dbname="#$$"', '$%#$%', 'PW$#%#$%');
    $objDb->exec('SET CHARACTER SET utf8');

    $sql = "SELECT * 
            FROM `categories`
            WHERE `master` = 0";
    $statement = $objDb->query($sql);
    $list = $statement->fetchAll(PDO::FETCH_ASSOC);

} catch(PDOException $e) {
    echo 'There was a problem';
}



?>
<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Dependable dropdown menu</title>
    <meta name="description" content="Dependable dropdown menu" />
    <meta name="keywords" content="Dependable dropdown menu" />
    <link href="css/core.css" rel="stylesheet" type="text/css" />
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>
<body>


<div id="wrapper">

    <form action="" method="post">

        <select name="gender" id="gender" class="update">
            <option value="">Select one</option>
            <?php if (!empty($list)) { ?>
                <?php foreach($list as $row) { ?>
                    <option value="<?php echo $row['id']; ?>">
                        <?php echo $row['name']; ?>
                    </option>
                <?php } ?>
            <?php } ?>
        </select>

        <select name="category" id="category" class="update"
            disabled="disabled">
            <option value="">----</option>
        </select>

        <select name="colour" id="colour" class="update"
            disabled="disabled">
            <option value="">----</option>
        </select>

    </form>

</div>


<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="js/core.js" type="text/javascript"></script>
</body>
</html>

the code for the update file:

<?php
if (!empty($_GET['id']) && !empty($_GET['value'])) {

    $id = $_GET['id'];
    $value = $_GET['value'];

    try {

        $objDb = new PDO('mysql:host=localhost;dbname=#$%', '$R#"', 'PW"#$"%');
        $objDb->exec('SET CHARACTER SET utf8');

        $sql = "SELECT * 
                FROM `categories`
                WHERE `master` = ?";
        $statement = $objDb->prepare($sql);
        $statement->execute(array($value));
        $list = $statement->fetchAll(PDO::FETCH_ASSOC);

        if (!empty($list)) {

            $out = array('<option value="">Select one</option>');

            foreach($list as $row) {
                $out[] = '<option value="'.$row['id'].'">'.$row['name'].'</option>';
            }

            echo json_encode(array('error' => false, 'list' => implode('', $out)));

        } else {
            echo json_encode(array('error' => true));
        }

    } catch(PDOException $e) {
        echo json_encode(array('error' => true));
    }

} else {
    echo json_encode(array('error' => true));
}

And the core file

var formObject = {
    run : function(obj) {
        if (obj.val() === '') {
            obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
        } else {
            var id = obj.attr('id');
            var v = obj.val();
            jQuery.getJSON('C:\wamp64\www\Site\Dropdown\mod\update.php', { id : id, value : v }, function(data) {
                if (!data.error) {
                    obj.next('.update').html(data.list).removeAttr('disabled');
                } else {
                    obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
                }
            });
        }
    }
};
$(function() {

    $('.update').live('change', function() {
        formObject.run($(this));
    });

});

Basically all the data is under the same table and Db, but i cant relate it.

Any inputs?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器