PHP'添加更多'链接多个类别过滤

时间:2014-03-14 04:07:05

标签: javascript php

我希望用户能够过滤具有多个类别选择的项目。 此时,用户可以从下拉列表中选择一个类别,并仅查看该类别中的项目。我想做的是,在“添加更多”按钮点击后,添加更多下拉菜单后,让用户选择更多类别

不确定如何为每个类别添加唯一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>

3 个答案:

答案 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或提交保存,然后重新填充您的输入选择框,多数民众赞成我的理解请解释您的问题,这将更有帮助