axelbol

axelbol

Member Since 5 Days Ago

Experience Points 50
Experience Level 1

4,950 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed 0
Lessons
Completed
Best Reply Awards 0
Best Reply
Awards
  • start-engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber-token Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer-token Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • lara-evanghelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

11 Sep
4 days ago

axelbol started a new conversation Synchronous Execution Working Fine But Problems With Asynchronous JQuey Ajax

I'm starting to use jquery with ajax but I have a problem. I´m using spatie/permission and I have been able to implement 100% working with synchronously execution but now with ajax and Asynchronous execution on the edit part I have problems. With synchronously execution I have the user and I assign it a role like this.

public function edit($id)
    {
        $user=User::findOrFail($id);
        // scotch
        $roles = Role::get();
        // $roles = Role::pluck('name', 'id')->all();
        return view('user.edit', compact('user', 'roles'));
    }

And on the view I have this

<div class="row">
        <form-group class="col-md-6">
          @foreach ($roles as $role)
            {{ Form::checkbox('roles[]',  $role->id, $user->roles ) }}
            {{ Form::label($role->name, ucfirst($role->name)) }} <br>
          @endforeach
        </form-group>
      </div>

As a result I have the checkbox CHECKED with the role assigned to thah user this is working fine but with jquery and ajax I´m not beeing able to pass that CHECKED checkbox. I can pass to the create modal for user the roles created and I can save it but when I want to edit it I don´t know how to it from the database just I did it with the synchronously execution. I have this on the Asynchronous execution

public function index()
    {   
        $roles = Role::get();
        // $user = User::findOrFail($id);
        return view('user.index', compact('roles'));
    }

public function store(Request $request)
    {
        $input=$request->all();
        
        $user=new User();
        $roles = $request['roles']; //Retrieving the roles field
        if (isset($roles)) //Checking if a role was selected
        {
            foreach ($roles as $role) 
            {
                $role_assign = Role::where('id', '=', $role)->firstOrFail();            
                $user->assignRole($role_assign); //Assigning role to user
            }
        }

        User::create($input);
        return Response::json($input);
    }

On the edit part

    public function edit($id)
    {
        $user = User::findOrFail($id);
        
        return Response::json([$user);
    } 

And on the view for Asynchronous

<div class="form-group col-md-6">
   <input type="hidden" name="role_id" id="role_id">
          @foreach ($roles as $role)
              <label>                                
               {{ Form::checkbox('roles[]', $role->id, $user->roles) }}
                      {{  ucfirst($role->name) }}
                 </label> <br>
            @endforeach
  </div>

jQuery part

/* When click edit user */
        $(document).on('click', '.edit-user', function(){
            // user_id=$(this).attr('id');
            var id = $(this).data('id');
            // console.log(id);
            $.ajax({
                url: "/user/"+id+"/edit",
                dataType: 'json',
                success: function(data){
                    $('#name').val(data.name);
                    $('#email').val(data.email);
                    $('#user_id').val(data.id);
                    $('#user-title').html("Editar usuario");
                    $('#button-action').val("edit");
                    $('#btn-save').val('Editar');
                    $('#user-modal').modal('show');
                }
            })
        });

if($('#button-action').val()=='edit')
            {
                var value=$("#user_id").val();
                $.ajax({                    
                    data: $('#user-form').serialize(),                   
                    url: "/user/update",
                    method: "POST",
                    dataType: 'json',
                    success: function(data)
                    {
                        $('#user-form').trigger("reset");
                        $('#user-modal').modal('hide');
                        var Table = $('#users-table').dataTable();
                        Table.fnDraw(false);
                    },
                    error: function(data){
                        alert('Disculpe, ocurrio un problema. Vuelva a intentar');
                        $('#btn-save').html('Volver a intentar');
                    }
                });
            }

So how can I pass the CHECKED boxes to the modal when user clicks edit?