子类别的动态变化根据在此子类别中选择的选项来选择选项

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

本文关键字:选择 选项 子类 动态 变化      更新时间:2023-09-26

我现在拥有的:
1) 31六月.html
2) 32六月.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。
我想把第1栏换成新的日期。

<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 = '
        <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(),或者为它创建另一个更改处理程序,就像为类型创建一样。