繁体   English   中英

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

[英]dynamic change of subcategory select options according to option selected in this subcategory

我现在所拥有的:
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);   

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

$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()或为其创建另一个更改处理程序,就像输入type一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM