如何从复选框中获取选定的多个值并以表格形式提交以获取匹配的搜索结果

问题描述 投票:0回答:1

此表单包含一个带有多个带有复选框的选项的下拉列表,现在,当用户选择1个或多个复选框并按Submit时,应该使用匹配的搜索结果来处理值。以前,我有一个select标记和一个option标记,用于获取结果。现在,由于添加了搜索多个选项的功能,因此添加了复选框,但现在不确定如何获取结果。

HTML和Php代码

<form action="<?php the_permalink() ?>" class="ajax-search-form leaders-header" id="searchform" method="post" role="search">
        <?php get_template_part( 'blocks/leaderboard/search-form' ) ?>
        <div class="sort">

        <body>
        <?php if ($departments = get_field_object('field_5da06da87ae0f')) : ?>
        <div class="sort-item">
        <div id="list1" class="dropdown-check-list" tabindex="100">
            <span class="anchor" style="font-size: small">All Departments</span>
            <ul id="items" class="items" name="department" >
                <label for="test">
                <?php foreach ($departments['choices'] as $key => $department) : ?>
                    <input type="checkbox" name="check" id="test" value="unchecked" /> <option style="font-size: small" <?php if ( isset($_REQUEST['role']) and $_REQUEST['role'] == $key) echo 'selected' ?> value="<?php echo $key; ?>">

                        <?php echo $department; ?></option></label></br>

                <?php endforeach; ?>

                <input style="font-size: small" type="submit" value="Submit" "/>
            </ul>
        </div>
        </div>
        <?php endif ?>
        </body>

JavaScript:

<script type="text/javascript">

            var checkList = document.getElementById('list1');
            var items = document.getElementById('items');
            var isChecked = document.getElementById('items').checked;
            checkList.getElementsByClassName('anchor')[0].onclick = function (evt) {
                if (items.classList.contains('visible')){
                    items.classList.remove('visible');
                    items.style.display = "none";
                }
                else{
                    items.classList.add('visible');
                    items.style.display = "block";
                }

            }

            items.onblur = function(evt) {
                items.classList.remove('visible');
            }


        </script>
javascript html dom
1个回答
0
投票

问题是,每个复选框都将具有相同的名称和ID,因此您将无法识别哪个选项属于哪个复选框,但是可以尝试类似的操作

<?php foreach ($departments['choices'] as $key => $department) : ?>
                    <input type="checkbox" name="<?= $department ?>" id="<?= $department ?>" value="unchecked" />
© www.soinside.com 2019 - 2024. All rights reserved.