我希望用户能够过滤具有多个类别选择的项目。 此时,用户可以从下拉列表中选择一个类别,并仅查看该类别中的项目。我想做的是,在“添加更多”按钮点击后,添加更多下拉菜单后,让用户选择更多类别
不确定如何为每个类别添加唯一ID。任何帮助表示赞赏!
<script>
function addInput(divName, template){
var newdiv = document.createElement('div');
newdiv.innerHTML = document.getElementById(divName).innerHTML;
document.getElementById(template).appendChild(newdiv);
}
</script>
<div id="template">
<select name="category">
<?php
$res = mysql_query("SELECT * FROM `categories` ORDER BY `id` ASC");
if(mysql_num_rows($res) > 0){
while($row = mysql_fetch_assoc($res)){
$id = $row['id'];
$name = $row['name'];
if($cat_id === $id) {
echo '<option selected="selected" value="'.$id.'">'.$name.'</option>';
}else{
echo '<option value="'.$id.'">'.$name.'</option>';
}
}
}
?>
</select>
</div>
<div id="add_more_cat"></div>
<a href="javascript:void(0)" onClick="addInput('template', 'add_more_cat');">+ Add more</a>
答案 0 :(得分:0)
这是你的解决方案..使用这个javascript ..
<script>
function addInput(divName, template) {
var newdiv = document.createElement('div');
newdiv.innerHTML = document.getElementById(divName).innerHTML;
document.getElementById(template).appendChild(newdiv);
var selectElements = document.querySelectorAll('select');
for (var i = 0; i < selectElements.length; i++)
selectElements[i].id = 'id-' + i;
selectElements[i].name = 'select-' + i;
}
</script>
答案 1 :(得分:0)
您可以为div设置属性。
<script>
function addInput(divName, template){
var count=0;
var newdiv = document.createElement('div');
newdiv.innerHTML = document.getElementById(divName).innerHTML;
newdiv.setAttribute("elem_id_"+count,document.getElementById('category').value) ;
document.getElementById(template).appendChild(newdiv);
count++;
}
</script>
这没有经过测试,但algorytm是:set new attributes用于新div。然后是get these attributes。
答案 2 :(得分:-1)
您需要为要创建的新类别添加字段并使用ajax或提交保存,然后重新填充您的输入选择框,多数民众赞成我的理解请解释您的问题,这将更有帮助