根据在此子类别中选择的选项动态更改子类别选择选项

时间:2015-07-01 14:37:41

标签: javascript php html ajax

我现在拥有什么:
1)31june.html
2)32june.php

我有一个带有这种结构的表“珠宝”:

  
    

ID
    品牌(VARCHAR)     类型(VARCHAR)
    模型(VARCHAR)
    集合(VARCHAR)
    描述(文本)
    代码(VARCHAR)
    URL(VARCHAR)
    可用(INT)

  

第一个文件31june.html是一个选择框,其中列出了类型(耳环,项链,手表),根据我们选择的类型,脚本会将所选类型发送到第二个文件32june.php。

32june.php会做另外的事情:

1)查询:

$sql='SELECT collection FROM jewelry WHERE type = ?' 

2)回显另一个带有查询($ sql)的选择框。

例如我选择了选择框耳环,在DB珠宝表中将选择所有带耳环的系列,此系列将作为选项显示在新的选择框中。

我想要的是:我需要选择类型然后根据类型显示带有集合的选择框然后我想在生成的选择框中选择集合并根据它,将它(此集合名称)替换为另一个选择选项或例如我希望在此选择框中显示的新结果。

例如:
类型:耳环 - >生成带有集合选项值coll1的选择框 我选择了coll1 我希望用新日期替换coll1。

<script type="text/javascript">
    $(document).ready(function(){

    $('#type').on("change",function () {
        var chosen= $(this).find('option:selected').val();
        $.ajax({
            url: "31june.php",
            type: "POST",
            data: "chosen="+chosen,
            success: function (response) {
                console.log(response);
                $("#ajdiv2").html(response);
            },
            });
        });
    });
</script>

<div id="ajdiv">
    <select name="type" id="type">
        <option>Select Type</option>         
        <option value="earrings">Earrings</option>
        <option value="necklace">Necklace</option>
        <option value="watches">Watches</option>
    </select>
</div>

<div id="ajdiv2"></div>

<?php
$chosen = $_POST['chosen'];

function mm ($chosen){

    $host="xxxx";

    $pass="xxxx";

    $user="xxxx";

    $db="xxxx";

    $connect ="mysql:host=$host;dbname=$db";

    $pdo = new PDO($connect, $user, $pass);

    $sql1='SELECT collection FROM jewelry WHERE type = ?';  

    $stmt = $pdo->prepare($sql1); 

    $stmt->execute(array($chosen));

    foreach($stmt as $val){

        $select = '
            <select name="users" id="yol" onchange="showUser(this.value)">
            <option value="">Select Collection:</option>
            <option value="collection">
        ' . $val['collection'] . '</option>
        </select>';            
        echo $select;   
    }   
}
echo mm($chosen);   

1 个答案:

答案 0 :(得分:0)

您的循环可能存在问题,您正在创建多个选择元素。尝试更改为:

$select = '
        <select name="users" id="yol" onchange="showUser(this.value)">
        <option value="">Select Collection:</option>
';

foreach($stmt as $val){

    $select = $select . '
        <option value="collection">
    ' . $val['collection'] . '</option>';            
}

$select = $select . '</select>';
echo $select;

然后你可以实现showUser(),或者为它创建另一个更改处理程序,就像你拥有类型一样。