PHP、HTML JS MySQL 动态下拉菜单

Posted

技术标签:

【中文标题】PHP、HTML JS MySQL 动态下拉菜单【英文标题】:PHP, HTML JS MySQL Dynamic Drop-Downs 【发布时间】:2019-07-10 06:42:06 【问题描述】:

我有一个表格,除了... 用户应该选择部门并且 4 个缺陷字段应该填充与部门匹配的缺陷之外,我所有的东西都在工作和提交。部门和缺陷 4 工作。如果我删除 4 然后 3 作品,删除 4&3 和 2 作品等等。我认为它正在丢失 listindex 但我迷路了。我已将各种变量更改为在每个缺陷中也是唯一的并且结果相同。我只是大脑冻结,语法有些东西我错过了一些东西。以下是 Dept、Defect 1 和 2 的代码。

    <strong>Department Name:</strong>
        <select name=Department_Nam class="required-entry" id="Department_Nam" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);">
            <option value="">Select Department</option>
            <?php if ($resultdep->num_rows > 0) 
              while($row = mysqli_fetch_assoc($resultdep)) ?>
                <option value="<?php echo $row['Department_Nam']; ?>"> <?php echo $row['Department_Nam']; ?></option>

          <?php        
              ?>

        </select>
    </div>

    <strong>Defect:</strong><br>
        <script>
            document.write('<select name="DefectDescrip" id="DefectDescrip"> <option value="">Please select defect</option></select>')
        </script>
        <noscript>
            <select name="DefectDescrip" id="DefectDescrip">
                <option value="">Please select defect</option>
            </select>
        </noscript>
    </div>
    <script>
        var rowFrameworkResultInJs =<?php echo json_encode($rowFrameworkResult);?>;
        function dynamicdropdown(listindex)
        
            document.getElementById("DefectDescrip").length = 0;
            document.getElementById("DefectDescrip").options[0]=new Option("Please select defect","");
            if (listindex) 
                var lookup = ;
                var j = 1;
                for (var i = 0, len = rowFrameworkResultInJs.length; i < len; i++) 
                    if (rowFrameworkResultInJs[i].Reject_Code_Department == listindex) 
                        document.getElementById("DefectDescrip").options[j]=new Option(rowFrameworkResultInJs[i].Reject_Code_Descrip,rowFrameworkResultInJs[i].Reject_Code_Descrip);
                        j = j+1;
                    
                
            
         return true;   
        
   </script>


   <br><strong>Defect 2:</strong><br>
        <script>
            document.write('<select name="DefectDescrip2" id="DefectDescrip2"><option value="">Please select defect</option></select>')
        </script>
        <noscript>
            <select name="DefectDescrip2" id="DefectDescrip2">
                <option value="">Please select defect</option>
            </select>
        </noscript>
    </div>
    <script>
        var rowFrameworkResultInJs =<?php echo json_encode($rowFrameworkResult);?>;
        function dynamicdropdown(listindex)
        
            document.getElementById("DefectDescrip2").length = 0;
            document.getElementById("DefectDescrip2").options[0]=new Option("Please select defect","");
            if (listindex) 
                var lookup = ;
                var j = 1;
                for (var i = 0, len = rowFrameworkResultInJs.length; i < len; i++) 
                    if (rowFrameworkResultInJs[i].Reject_Code_Department == listindex) 
                        document.getElementById("DefectDescrip2").options[j]=new Option(rowFrameworkResultInJs[i].Reject_Code_Descrip,rowFrameworkResultInJs[i].Reject_Code_Descrip);
                        j = j+1;
                    
                
            

            return true;
        
   </script>

【问题讨论】:

检查这个例子plus2net.com/php_tutorial/php_drop_down_list.php 我找到了,但谢谢。您是否看到代码有什么问题,为什么它在 1 和 3 中不起作用,但在 2 下拉菜单中不起作用 该代码适用于部门选择和最后一个缺陷选择。如果删除最后一个缺陷 (#4),则 #3 有效。希望我说得通。非常感谢任何帮助/指导。除上述内容外,该代码的工作方式与预期完全一致。我需要对已有的语法进行哪些更改? 【参考方案1】:

修复它。我正在调用部门中的一个函数,需要添加单个函数调用并更改被调用函数以匹配。哇,头抽筋。

【讨论】:

以上是关于PHP、HTML JS MySQL 动态下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

从 PHP/MYSQL 选择值填充下拉菜单。如何重新排列输出

jQuery+PHP+MySQL实现二级联动下拉菜单

(实用篇)jQuery+PHP+MySQL实现二级联动下拉菜单

PHP- 从数据库中获取并存储在下拉菜单 html 中

动态下拉菜单

将数据从下拉菜单提交到mysql而不刷新页面