Javascript 基于另一个下拉选择的过滤器下拉列表

Javascript 基于另一个下拉选择的过滤器下拉列表,javascript,php,sql-server,drop-down-menu,auto-populate,Javascript,Php,Sql Server,Drop Down Menu,Auto Populate,我有多个下拉列表,希望根据第一个下拉列表中选择的内容过滤第二个下拉列表的内容。以下是我到目前为止已经掌握的代码。我怎么能这样做 HTML/PHP: <td> <select id="major" onChange="updateCat();"> <?php foreach ($dropdown_major->fetchAll() as $drop_major): ?>

我有多个下拉列表,希望根据第一个下拉列表中选择的内容过滤第二个下拉列表的内容。以下是我到目前为止已经掌握的代码。我怎么能这样做

HTML/PHP:

<td>                        
    <select id="major" onChange="updateCat();">
        <?php foreach ($dropdown_major->fetchAll() as $drop_major): ?>
                <option
                    value=""
                    data-name="<?php echo $drop_major ['Major Category'];?>"
                >
                    <?php echo $drop_major ['Major Category'];?>
                </option>
        <?php endforeach; ?>
    </select>
</td>


<td>
    <select id="minor">
        <?php foreach ($dropdown_minor->fetchAll() as $drop_minor): ?>
                <option
                    value=""
                    data-name="<?php echo $drop_minor ['Minor Category'];?>"
                >
                    <?php echo $drop_minor ['Minor Category'];?>
                </option>
        <?php endforeach; ?>
    </select>
</td>
数据库连接和SQL语句:

<?php
$host="xxxxxxxxxxx"; 
$dbName="xxxxx"; 
$dbUser="xxxxxxxxxxxxx"; 
$dbPass="xxxxxxxx";


$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql_major = "SELECT DISTINCT [Major Category] FROM ProductTable ORDER BY [Major Category] ASC";
$sql_minor = "SELECT DISTINCT [Minor Category] FROM ProductTable ORDER BY [Minor Category] ASC";

$dropdown_major = $dbh->query($sql_major);
$dropdown_minor = $dbh->query($sql_minor);
?>

抱歉,时间不多,我无法回答您的代码,但请举一个肯定会对您有所帮助的示例。运行下面的代码段

HTML


挑选
1.
2.

和Javascript

function showsecondlist()
{
var uservalue=document.getElementById("first").value;
if(uservalue==1)
document.getElementById("second").innerHTML='<option value="1.1">1.1</option><option value="1.2">1.2</option>';
else if(uservalue==2)
document.getElementById("second").innerHTML='<option value="2.1">2.1</option><option value="2.2">2.2</option>';
}
函数showsecondlist()
{
var uservalue=document.getElementById(“第一”).value;
if(uservalue==1)
document.getElementById(“第二”).innerHTML='1.11.2';
else if(uservalue==2)
document.getElementById(“第二”).innerHTML='2.12.2';
}
这段代码适合您,但尝试使用JSON向用户发送选项,然后根据用户选择的第一个下拉列表应用一些if-else语句

提示:如果在select语句中有大量的选项,或者在代码中有大量的select语句,那么先去学习AJAX。这很简单,你可以很容易地学会。JSON和AJAX几乎不需要2-3天。在AJAX中,根据用户选择调用函数并使用JSON发送数据。虽然Ajax增加了对服务器的请求数量,但它会减少代码长度。这减少了页面加载时间,易于维护,有利于搜索引擎。谷歌喜欢代码少、信息多的页面,这也将在将来帮助你轻松解决很多问题

函数showsecondlist()
{
var uservalue=document.getElementById(“第一”).value;
if(uservalue==1)
document.getElementById(“第二”).innerHTML='1.11.2';
else if(uservalue==2)
document.getElementById(“第二”).innerHTML='2.12.2';
}

挑选
1.
2.



抱歉,时间不多,我无法回答您的代码,但请举一个肯定会对您有所帮助的示例。运行下面的代码段

HTML


挑选
1.
2.

和Javascript

function showsecondlist()
{
var uservalue=document.getElementById("first").value;
if(uservalue==1)
document.getElementById("second").innerHTML='<option value="1.1">1.1</option><option value="1.2">1.2</option>';
else if(uservalue==2)
document.getElementById("second").innerHTML='<option value="2.1">2.1</option><option value="2.2">2.2</option>';
}
函数showsecondlist()
{
var uservalue=document.getElementById(“第一”).value;
if(uservalue==1)
document.getElementById(“第二”).innerHTML='1.11.2';
else if(uservalue==2)
document.getElementById(“第二”).innerHTML='2.12.2';
}
这段代码适合您,但尝试使用JSON向用户发送选项,然后根据用户选择的第一个下拉列表应用一些if-else语句

提示:如果在select语句中有大量的选项,或者在代码中有大量的select语句,那么先去学习AJAX。这很简单,你可以很容易地学会。JSON和AJAX几乎不需要2-3天。在AJAX中,根据用户选择调用函数并使用JSON发送数据。虽然Ajax增加了对服务器的请求数量,但它会减少代码长度。这减少了页面加载时间,易于维护,有利于搜索引擎。谷歌喜欢代码少、信息多的页面,这也将在将来帮助你轻松解决很多问题

函数showsecondlist()
{
var uservalue=document.getElementById(“第一”).value;
if(uservalue==1)
document.getElementById(“第二”).innerHTML='1.11.2';
else if(uservalue==2)
document.getElementById(“第二”).innerHTML='2.12.2';
}

挑选
1.
2.


function showsecondlist()
{
var uservalue=document.getElementById("first").value;
if(uservalue==1)
document.getElementById("second").innerHTML='<option value="1.1">1.1</option><option value="1.2">1.2</option>';
else if(uservalue==2)
document.getElementById("second").innerHTML='<option value="2.1">2.1</option><option value="2.2">2.2</option>';
}