将数组值传递给复选框

时间:2015-04-02 08:22:29

标签: arrays laravel checkbox multidimensional-array

我有这段代码

@foreach($files['files'] as $file)
<tr>
<td><input type="checkbox" name="check_list[]" value="{{$file}}"></td>
<td>{{file['id']</td>
<td>{{file['name']</td>
<td>{{file['type']</td>
<td>{{file['modified']</td>
</tr>
@endforeach

$file包含1个文件的所有详细信息,如姓名,ID,修改日期等。 我可以将它们传递给复选框吗?我想要发生的事情:当用户点击复选框时,文件的所有细节都将包含复选框。如果我连接它们,我将在分组它时遇到问题。上面的代码将Array作为字符串输入。我想将$file - 1个文件的所有详细信息传递给复选框。因此,当用户检查复选框时,将给出一组包含其详细信息的文件。

如果我将它们从foreach中删除,它将只有一个复选框。我正在开发一个系统,我希望有人可以帮助我。我坚持这个问题。

请帮助。

更新:

{{ Form::open(array('url'=>'evaluate','check_list'=>true, 'method'=>'POST', 'id'=>'check_list')) }}
            @foreach($files['folders'] as $file)
                <tr>
                <td><input type="checkbox" name="check_list[]" ></td>
                <td>
                    <a href={{url("/home/".$file['file_name'])}}>
                      {{ $file['file_name'] }}
                    </a>
                  </td>
                  <td class="center">{{ $file['file_type'] }}</td>
                  <td class="center">{{ $file['file_modified'] }}</td>
                  <td>{{ $file['file_size'] }}</td>
                  <td class="center">{{ $file['location'] }}</td>
                  <input type="hidden" name="check_list[location]" value="{{$file['location']}}">{{ $file['location'] }}
                  <input type="hidden" name="check_list[file_type]" value="{{$file['file_type']}}">
                  <input type="hidden" name="check_list[file_id]" value="{{$file['file_id']}}">
                  <input type="hidden" name="check_list[file_name]" value="{{$file['file_name']}}">

              </tr>
              @endforeach

            @foreach($files['files'] as $file)
                <tr>
                <td><input type="checkbox"></td>

               <td>{{ $file['file_name'] }}</td>
                <td class="center">{{ $file['file_type'] }}</td>
                <td class="center">{{ $file['file_modified'] }}</td>
                <td>{{ $file['file_size'] }}</td>
                <td class="center">{{ $file['location'] }}</td>
                <input type="hidden" name="check_list[location]" value="{{$file['location']}}">{{ $file['location'] }}
                <input type="hidden" name="check_list[file_type]" value="{{$file['file_type']}}">
                <input type="hidden" name="check_list[file_id]" value="{{$file['file_id']}}">
                <input type="hidden" name="check_list[file_name]" value="{{$file['file_name']}}">

               </tr>
              @endforeach
              {{Form::hidden('action')}}
              {{ Form::close()}}

1 个答案:

答案 0 :(得分:0)

如果这不能回答您的问题,请更新一些更具体的用途。但实际上,您需要的是文件的ID作为复选框中的参考,然后将其解析为控制器中的文件或处理帖子请求的任何位置。

在您看来:

@foreach($files as $file)
    <input type="checkbox" name="{{$file->id}}" value="selected"> // or 1 or true
@endforeach

在您的控制器中:

public function postFile()
{
    $files = File::all() // change according to your model or repository    
    $selectedFiles = [];

    foreach ($files as $file) {
        if (Input::get($file->id) == "selected")
        {
            $selectedFiles[] = $file;
        }
    }

    // do what you want with the selected files example to show you the array
    foreach($selectedFiles as $selectedFile){
        $selectedFile['was_selected']   =   "Yes";
    }  
}