我有一个表单,除了...用户应选择部门,并且 4 个缺陷字段应填充与部门匹配的缺陷之外,所有内容均已正常工作并提交。部门和缺陷4工程。如果我删除 4 则 3 个作品,删除 4&3 和 2 个作品,依此类推。我认为它正在丢失列表索引,但我迷路了。我已将各个变量更改为每个缺陷中唯一的,并且结果相同。我只是脑子卡住了,语法上我遗漏了一些东西。以下是部门、缺陷 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>
最佳答案
已修复。我正在调用部门中的一个函数,需要添加单独的函数调用并更改被调用的函数以匹配。哇,头抽筋了。
关于javascript - PHP、HTML JS MySQL 动态下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54720886/