Javascript 显示多个选定类别下的项目

Javascript 显示多个选定类别下的项目,javascript,php,jquery,laravel,bootstrap-multiselect,Javascript,Php,Jquery,Laravel,Bootstrap Multiselect,我有如下类别的列表 <select name="category[]" id="category" multiple="multiple"> <option value="0">All</option> <option value="1">Cate_1</option> <option value="2">Cate_2

我有如下类别的列表

<select name="category[]" id="category"  multiple="multiple">     
                <option value="0">All</option>
                <option value="1">Cate_1</option>
                <option value="2">Cate_2</option>
                <option value="3">Cate_3</option>
                <option value="4">Cate_4</option>
                <option value="5">Cate_5</option>
                <option value="6">Others</option>
</select>
$(function () {

    $('#category').multiselect({
        buttonWidth: '165px',
        onChange: function (option, checked, select) {
            var categories = $('#category option:selected');
            var selected = [];
            $(categories).each(function (index, category) {
                selected.push($(this).val());
            });
            debugger;
            $.post("get-items-under-selected-categories", {
                    category: selected
                },
                function (data, status) {
                    alert("Data: " + data + "\nStatus: " + status);
                });
        }
    });
});

是的,您可以发送ajax调用来检索所选类别的相关信息

我可以在您的javascript代码中看到两个问题

  • }multiselect中缺少右括号

  • 您需要将实际值推送到选定数组,而不是selected.push([$(this.val());)

  • 更新javascript将如下所示

    <select name="category[]" id="category"  multiple="multiple">     
                    <option value="0">All</option>
                    <option value="1">Cate_1</option>
                    <option value="2">Cate_2</option>
                    <option value="3">Cate_3</option>
                    <option value="4">Cate_4</option>
                    <option value="5">Cate_5</option>
                    <option value="6">Others</option>
    </select>
    
    $(function () {
    
        $('#category').multiselect({
            buttonWidth: '165px',
            onChange: function (option, checked, select) {
                var categories = $('#category option:selected');
                var selected = [];
                $(categories).each(function (index, category) {
                    selected.push($(this).val());
                });
                debugger;
                $.post("get-items-under-selected-categories", {
                        category: selected
                    },
                    function (data, status) {
                        alert("Data: " + data + "\nStatus: " + status);
                    });
            }
        });
    });
    
    如果您将信息发布到php。您可以使用下面的代码检索已发布的选定类别

    <?php 
        foreach ($_POST['category'] as $code => $name) 
        {
            echo  $name.'<br />';
    
        }
    ?>
    
    
    
    我看到一些关于您的代码的问号,首先,应该是
    最喜欢的。push
    不是
    类别。push
    ?第二,使用行
    $(“input[name='category']:checked”)
    您是否试图引用
    select name=“category[]”
    ?或者你没有给我们看所有的html吗?我修正了最喜欢的。是的,
    select name=“category[]
    这一个。@CarstenLøvboAndersen我已经修复了它,现在我可以获得选定的类别。请告诉我如何加载每个类别下列出的内容并显示。我应该使用ajax post吗?还是应该加载所有项目并进行隐藏和显示?请帮助。