How to get selected categories on edit record with Select2

You can get the selected categories on edit record with select2 in select box. You have to get all the categories which is related to current record and use json_encode() method to convert it into json format and pass it to map method to get only the id attribute and pass to select input using val() method.

Answers 1
  • Get selected categories on edit record using Select2

    //jQuery function to auto select select2 box on edit record
    <script>
        $(document).ready(function(){
            var catObj = <?php echo json_encode($post->categories); ?>;
            var arr = $.map(catObj, function(el) { return el['id']; });
            //pass array object value to select2 
            $('#categoryPost').val(arr).trigger('change');
            $('#categoryPost').select2();
        })
    </script>
    
    //Select2 HTML element
    <select class="js-example-basic-multiple form-control" id="categoryPost" name="category_id[]" multiple="multiple">
        <option value="">Select Categories</option>
        @foreach ($categories as $category)
            <option value="{{ $category->id }}" {{ $category->id === old('category_id') ? 'selected' : '' }}>{{ $category->name }}</option>
            @if ($category->children)
                @foreach ($category->children as $child)
                    <option value="{{ $child->id }}" {{ $child->id === old('category_id') ? 'selected' : '' }}>&nbsp;&nbsp;{{ $child->name }}</option>
                @endforeach
            @endif
        @endforeach
    </select>
    
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script>
    
    0

    You have to return all the categories in $categories , and post in $post which you want to edit to view file. You have to create a pivot table category_post to store the post_id and category_id and create a categories() method with belongsToMany() in the post model. Don't forget to create categories and posts table. Follow the instruction it will help you to find out the solution for auto select on edit record using select2 with multiple categories.

  • Back to code snippet queries related laravel