javascript - 为 db 中的每一行生成一个 case 开关
问题描述
我正在为我的数据库中不为空的每一行生成一个在 js 中切换的案例。对于每种情况,我都会生成一个新选项:
<script language="javascript" type="text/javascript">
function dropdownlist(listindex)
{
document.formname.subcategory.options.length = 0;
switch (listindex)
{
<?php $stmt = $conn->query("SELECT * FROM `filters` WHERE `primary_category` <> '' "); ?>
<?php while ($row = $stmt->fetch()) { ?>
case "<?php echo $row['primary_category']; ?>" :
<?php $stmt2 = $conn->query("SELECT * FROM `filters` WHERE `second_category` <> '' "); ?>
<?php $i= 0; ?>
<?php while ($row2 = $stmt2->fetch()) { ?>
<?php if($i === count($row2)) { ?>
break;
<?php } else { ?>
document.formname.subcategory.options[<?php echo $i;?>]=new Option("<?php echo $row2['second_category']; ?>","value1.1")
<?php $i++; ?>
<?php } ?>
<?php }?>
<?php }?>
default:
document.formname.subcategory.options[0]=new Option("Select Category")
break;
}
return true;
}
</script>
由于某种原因,没有显示第二类,也许中断发生得很快。这是它的外观:
我究竟做错了什么?
编辑:整个目的是让用户可以选择为每个类别选择一个子可爱。
这些类别和子类别的 html 在这里:
<table width="50%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td>Category:</td>
<td width="59%" align="left" valign="middle"><select name="category" id="category" onchange="dropdownlist(this.options[this.selectedIndex].value);">
<option class="hidden" selected disabled value="">Select Category</option>
<!-- Generate categories -->
<?php $stmt = $conn->query("SELECT * FROM `filters` WHERE `primary_category` <> '' "); ?>
<?php while ($row = $stmt->fetch()) { ?>
<option class = "form-control" name ="primary_category"><?php echo $row['primary_category']; ?></option>
<?php } ?>
</td>
</tr>
<tr>
<td >Sub Category:</td>
<td align="left" valign="middle"><script type="text/javascript" language="JavaScript">
document.write('<select name="subcategory"><option value="">Select Sub-Category</option></select>')
</script>
<noscript><select name="subcategory" id="subcategory" >
<option class ="hiden" selected disabled value="">Select Sub-Category</option>
</select>
</noscript></td>
</tr>
</table>