How to get selected categories on edit record with Select2

Created at 04-Sep-2021 , By samar

How to get selected categories on edit record with Select2

We’ll attempt to use programming in this lesson to solve the "How to get selected categories on edit record with Select2" puzzle.

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.
  • 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/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js"></script>
    

    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

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Buy Me A Coffee

Don't forget to share this article! Help us spread the word by clicking the share button below.

We appreciate your support and are committed to providing you valuable and informative content.

We are thankful for your never ending support.