我正在创建一个HTML表单,它从数据库中获取一些选项(php + mysql)
在php中,我正在创建一个checkbox
输入,旁边有一个选择框。
我将复选框houseAppsSelected[]
命名为select customCategories[]
,因此我将值作为数组。
我将所有HTML附加到名为$options
的var中,稍后我会回复它。
while ($row=mysql_fetch_array($result)) {
$cat_id=$row["category_id"];
$cat_name=$row["category_name"];
$options.="<INPUT type=\"checkbox\" name=\"houseAppsSelected[]\" VALUE=\"$cat_id\">".$cat_name." ---> ";
$custom_sql="SELECT custom_cat_id, cat_name FROM custom_categories WHERE house_app='$cat_id'";
$custom_result=mysql_query($custom_sql);
$options.="<SELECT name=\"customCategories[]\">";
$options.="<OPTION value=\"0\"> Choose Category </option>";
while ($custom_row=mysql_fetch_array($custom_result)) {
$custom_id = $custom_row['custom_cat_id'];
$custom_name = $custom_row['cat_name'];
$options.="<OPTION value=\"$custom_id\">".$custom_name."</option>";
}
$options.="</SELECT> <br /> <br />";
}
我希望使用复选框控制是启用还是禁用选择框。
我找到了this article,这让它看起来很简单,但如果所有选择框都有相同的名称,它会禁用所有这些。
如果我使用php动态构建它们,是否有办法让特定的复选框禁用/启用特定的选择框? (它们都有相同的名称)。
答案 0 :(得分:1)
您可以为每个标记指定唯一的“id”值,该值与“name”无关。然后你可以使用
var elem = document.getElementById(something);
通过该唯一值访问它们。
究竟你的php代码如何组成独特的值排序取决于你需要什么。它确实可以是任何东西。
答案 1 :(得分:1)
您可以使用nextSibling
属性查找选择。
function chkboxClick(chkbox) {
chkbox.nextSibling.nextSibling.disabled = !chkbox.checked;
}
像这样添加点击处理程序:
<INPUT type="checkbox" onclick="chkboxClick(this)" ... />