Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在第一个下拉列表中填充第二个下拉框(硬)_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

Javascript 如何在第一个下拉列表中填充第二个下拉框(硬)

Javascript 如何在第一个下拉列表中填充第二个下拉框(硬),javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我想根据用户在第一个下拉框中选择的值填充第二个下拉框。这就是我到目前为止所做的: 在PHP文件中: function displayDropDown() { $table_tester = "TBL_TESTER_LIST"; $query_string = "select * from $table_tester"; $result = @mysql_query($query_string) or die (mysql_error()); echo "<

我想根据用户在第一个下拉框中选择的值填充第二个下拉框。这就是我到目前为止所做的:

在PHP文件中:

function displayDropDown()
{
    $table_tester = "TBL_TESTER_LIST";
    $query_string = "select * from $table_tester";
    $result = @mysql_query($query_string) or die (mysql_error());

    echo "<select id=\"tester_type\" onChange=\"getTesterType();\">";
    while($data = mysql_fetch_array($result))
    {
        $tester_type = $data['tester_type'];
        echo "<option value='$tester_type'>$tester_type</option>"; // first drop down
    }
    echo "</select>";
}

function displaySecondDropDown($selected_tester_type)
{
    $table_tester = "TBL_TESTER_LIST";
    $query_string = "select * from $table_tester where tester_type = '$selected_tester_type'";
    $result = @mysql_query($query_string) or die (mysql_error());

    echo "<select>";
    while($data = mysql_fetch_array($result))
    {
        $tester_name = $data['tester_name'];
        echo "<option value='$tester_name'>$tester_name</option>";// second drop down
    }
    echo "</select>";
}

?>
<?php

$action = rtrim($_REQUEST['action']);

if($action=="insert")
{
    $tester_type = rtrim($_REQUEST['tester_type']);
    $tester_name  = rtrim($_REQUEST['tester_name']);

    echo checkDuplicateTesterName($tester_type, $tester_name);
}
else if($action=="displayDropDown")
{
    $selected_tester_type = $_REQUEST['tester_type'];

    echo displayDropDown();
    echo displaySecondDropDown($selected_tester_type);
}

?>
在HTML文件中:

<html>
    <head>
        <title>Delete Tester</title>
        <link rel="stylesheet" type="text/css" href="style.css"/>
        <script language="javascript" type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="function.js"></script>
        <script type="text/javascript">displayDropDown();</script>
    </head>

    <body>
        <h3>Delete Tester</h3>
        <div id="drop_two_list"></div>
        <table class="deleteTable">
            <tr>
                <td/><td><br>
                    <input type="button" value="Cancel" onclick="window.close();"/>
                    <input type="button" name="send" value="Delete" onclick="deleteTester();"/>
                </td>
            </tr>
    </table>
    </body>
</html>
tester\u type列是我想要填充第一个下拉框的内容,tester\u name列是我想要填充第二个下拉框的内容。如您所见,tester_类型有重复项,因为一个tester_名称可以属于同一个tester_类型(例如,绿色苹果1号(tester_名称)是苹果(tester_类型),绿色苹果2号(tester_名称)也是苹果(tester_类型))

我目前在我的第一个下拉框中得到的只是:LMX、LMX、LMX、LMX等等。这是因为我的前31行是LMX。如何对第一个下拉框进行编码,使其仅显示每种类型中的一种,而第二个下拉框将显示基于用户选择的值

例如:如果用户在第一个下拉框中选择LMX,则所有LMX tester_类型的tester_名称将填充第二个下拉框


如果桌上需要更多的信息,请告诉我。5天来一直在寻找一个解决方案,我似乎还没有接近一个结论。

如果不询问您的表为什么是这样结构的,那么在查询中使用DISTINCT子句来消除重复项是不够的

select DISTINCT tester_type from $table_tester

在这两个JS函数中,您都需要传递
操作
测试仪类型
。对于
displayDropDown
功能,
action
将具有值“displayDropDown”,并且
tester\u type
将为“”。在第二个函数中。将
操作
也与值“displayDropDown”一起放置。希望能有帮助。嗯,这可能是其中一个错误,但我仍然遇到同样的问题。
 id      tester_type   tester_name
 1         LMX           LMX-01
 2         LMX           LMX-04
 26        LCX           LCX-06
 40        CAT           CAT-14
 95        HPPS          HPPS-01
select DISTINCT tester_type from $table_tester