Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the values for a series of checkboxes in Laravel 4 controller (if checked)

I would like to get the values for a series of checkboxes I have set up in a Laravel 4 form. Here is the code in the view setting up the checkboxes:

@foreach ($friends as $friend)
<input tabindex="1" type="checkbox" name="friend[]" id="{{$friend}}" value="{{$friend}}">
@endforeach

In my controller, I would like to get the values for the checked boxes and put them in an array. I am not exactly sure how to do this, but I assume it is something like:

array[];

foreach($friend as $x)
if (isset(Input::get('friend')) {
        array[] = Input::get('friend');

 } 
endforeach

Could you provide me with a solution to do this? Thank you.

EDIT:

This is what I have in the controller:

public function describe_favorite() {

            $fan = Fan::find(Auth::user()->id);
            $fan->favorite_venue = Input::get('venue');
            $fan->favorite_experience = Input::get('experience');

            $friends_checked = Input::get('friend[]');

            print_r($friends_checked);

            if(is_array($friends_checked))
            {
             $fan->experience_friends = 5;
            }

            $fan->save();


            return Redirect::to('fans/home');

        }

It is not going through the "if" loop. How do I see the output of the print_r to see what's in the $friends_checked variable?

like image 844
user1072337 Avatar asked Oct 07 '13 22:10

user1072337


People also ask

How can I get multiple checkbox values in PHP if checked?

To get all the values from the checked checkboxes, you need to add the square brackets ( [] ) after the name of the checkboxes. When PHP sees the square brackets ( [] ) in the field name, it'll create an associative array of values where the key is the checkbox's name and the values are the selected values.


2 Answers

If checkboxes are related then you should use [] in the name attribute.

@foreach ($friends as $friend)
<input tabindex="1" type="checkbox" name="friend[]" id="{{$friend}}" value="{{$friend}}">
@endforeach


$friends_checked = Input::get('friend');
if(is_array($friends_checked))
{
   // do stuff with checked friends
}
like image 128
Glad To Help Avatar answered Oct 11 '22 00:10

Glad To Help


The array friend must have a key . If there is $friend->id you could try something like this.

 @foreach ($friends as $friend)
  <input tabindex="1" type="checkbox" name="friend[{{$friend->id}}]" id="{{$friend}}">
 @endforeach
like image 37
esifis Avatar answered Oct 10 '22 23:10

esifis