具有多个阵列的链式选择框

时间:2015-06-12 09:29:00

标签: javascript php mysql arrays

我在页面上有两个选择框,我正在使用Chained插件进行管理。第一个选择框标识要生成(并且可以是硬编码)的报告类型,该报告链接到需要从数据库获取动态数组的第二个选择框。

我有两个选择框正常工作,第二个选择框中的一个阵列设置与资金相关,如下所示。我现在遇到的问题是尝试为佣金实现另一个动态数组。我在这里注意,选择框不仅限于两个报告选项 - 我只是从两个简单的查询开始,以使事情有效,然后我将在它上面构建。

$queries = "SELECT DISTINCT(ProductName) FROM dbFund ORDER BY ProductName ASC";
$datas = mysql_query($queries);

<div class="col-lg-6">
    <select class="form-control" name="reportType" id="reportType">
        <option value="">----Select Report----</option>
        <option value="funds">Funds</option>
        <option value="commission">Commissions</option>
    </select>
</div>
<div class="col-lg-6">
    <select class="form-control" name="reports" id="reports" onChange="reportsSelect(this)">
        <?php 
            while($fetch_options=mysql_fetch_array($datas)) { 
        ?>
        <option class="funds" id="<?php echo $fetch_options['id']; ?>" value="<?php echo $fetch_options['ProductName']; ?>">
            <?php echo $fetch_options['ProductName']; ?>
        </option>
        <?php } ?>
    </select>
</div>

我有一些额外的脚本链接&#39;报告&#39; to&#39; reportType&#39;并将两个选择框值发送到php文件,以生成一个适用于&#39;基金的输出表。我需要帮助添加选项class =&#34;佣金&#34;这将是来自数据库表的类似查询。

如果我以错误的方式解决这个问题,我会对我应该使用的内容有所了解。

编辑 - Chained Plugin

            <script>

            $(function() {
                $("#reports").chainedTo("#reportType");
            });

            function reportsSelect(str) {
                alert(str.options[str.selectedIndex].value);

                if (str == "") {
                    document.getElementById("reportHint").innerHTML = "";
                    return;
                } else {
                    if (window.XMLHttpRequest) {
                        xmlhttp = new XMLHttpRequest();
                    } else {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    xmlhttp.onreadystatechange = function() {
                        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                            document.getElementById("reportHint").innerHTML = xmlhttp.responseText;
                        }
                    }
                    var str = document.getElementById("reports").value;                     
                    var stl = document.getElementById("reportType").value;
                    xmlhttp.open("GET","process/getReport.php?q="+str+"&z="+stl,true);
                    xmlhttp.send();
                }
            }

        </script>

1 个答案:

答案 0 :(得分:0)

如何在数据表名称类中添加列,以便将其添加到mysql_fetch_array循环中,如下所示:

<select class="form-control" name="reports" id="reports" onChange="reportsSelect(this)">
    <?php 
        while($fetch_options=mysql_fetch_array($datas)) { 
    ?>
    <option class="<?php echo $fetch_options['class']; ?>" id="<?php echo $fetch_options['id']; ?>" value="<?php echo $fetch_options['ProductName']; ?>">
        <?php echo $fetch_options['ProductName']; ?>
    </option>
    <?php } ?>
</select>

在reportType函数中,最后使用xmlhttp.responseText做任何你想做的事。

我不知道我是否想出你的问题。如果我在某处错了,请告诉我。