【问题标题】:Showing items under multiple selected categories显示多个选定类别下的项目
【发布时间】:2019-09-10 02:17:02
【问题描述】:

我有如下类别列表。

<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>

用户可以选择多个类别,我正在使用bootstrap-multiselect 插件。
在此之下,我只想要来自这些类别的项目。 这些项目或者也可以多选。
我所拥有的是只要下拉列表打开它就会将内容向下推。 另外,
如何加载所选类别下的项目?
I tried making a ajax get call when there is change in selecting category.

$('#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()]);
                           });
                       $.post("get-items-under-selected-categories",
                         {
                           category: selected
                         },
                        function(data, status){
                           alert("Data: " + data + "\nStatus: " + status);
                        });

        });

【问题讨论】:

  • 我看到一些关于你的代码的问号,首先,favorite.push 不应该是category.push 吗?其次,$("input[name='category']:checked") 行是指select name="category[]" 吗?还是您没有向我们展示所有的 html?
  • 我修复了最喜欢的。是的,select name="category[]这个。
  • @CarstenLøvboAndersen 我修复了它,现在我可以获取选定的类别。请告诉我如何加载每个类别下的列表并显示。我应该使用ajax帖子吗?或者我应该加载所有项目并进行一些隐藏和显示?请帮忙。

标签: javascript php jquery laravel bootstrap-multiselect


【解决方案1】:

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

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

  1. } 多选中缺少右括号。

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

更新 javascript 将如下所示。

$(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.ini。您可以使用以下代码检索已发布的选定类别。

<?php 
    foreach ($_POST['category'] as $code => $name) 
    {
        echo  $name.'<br />';

    }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多