【问题标题】:How to get the values for a series of checkboxes in Laravel 4 controller (if checked)如何获取 Laravel 4 控制器中一系列复选框的值(如果选中)
【发布时间】:2013-10-14 16:19:09
【问题描述】:

我想获取我在 Laravel 4 表单中设置的一系列复选框的值。这是视图中设置复选框的代码:

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

在我的控制器中,我想获取选中框的值并将它们放入一个数组中。我不完全确定如何做到这一点,但我认为它是这样的:

array[];

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

 } 
endforeach

您能给我一个解决方案吗?谢谢你。

编辑:

这是我在控制器中的内容:

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');

        }

它没有经过“if”循环。如何查看 print_r 的输出以查看 $friends_checked 变量中的内容?

【问题讨论】:

    标签: php checkbox laravel laravel-4


    【解决方案1】:

    如果复选框是相关的,那么您应该在名称属性中使用 []。

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

    【讨论】:

    • 试着看看 print_r($friends_checked) 它真正包含什么。
    • 如何从 Controller 打印这个变量以便我可以看到它?
    • 只需在控制器中输入:print_r($friends_checked);
    • 但是它出现在哪里?当我这样做时我看不到它。
    • 请告诉我?我真的不知道如何形象化。
    【解决方案2】:

    在表单字段中使用 name="friend[]" 创建一个名为friend的数组并传递给服务器,而不是 name="friend" 将字符串值传递给服务器。

    【讨论】:

      【解决方案3】:

      数组友元必须有一个键。如果有 $friend->id 你可以试试这样的。

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

      【讨论】:

      • 如果在控制器中使用 for 循环,这应该是公认的答案!
      猜你喜欢
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2014-08-15
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多