Morex
Morex

Reputation: 37

insert multiple checkbox values ​in multiple rows in db

  <form action="{{ route('associates_staff') }}" method="POST" class="card-title mb-0" style="margin-left: 5px">
                        @csrf
                        @method('PATCH')
                        <table class="table">
                            <thead>
                                <tr>
                                    <th class="d-none d-md-table-cell">Area e Subarea</th>
                                    <th class="d-none d-md-table-cell" style="text-align: center">Check Per Associare</th>
                                </tr>
                            </thead>
                            <tbody>
                                @foreach ($selectA as $item)
                                    <tr>
                                        <td style="color:red;">Area Selezionata :
                                             {{ $item->nome_area }}
                                        </td>
                                        <td style="text-align: center">
                                            <input type="checkbox" name="selezionearea" value="{{ $item->nome_area }}" checked />
                                        </td>
                                    </tr>
                                @endforeach
                                @foreach ($selectS as $item)
                                    <tr>
                                        <td>Subarea : {{ $item->subareas }}</td>
                                        <td style="text-align: center">
                                            <input type="checkbox" name="subarea[]" value="{{ $item->subareas }}" />
                                        </td>
                                    </tr>
                                @endforeach
                                </tr>
                            </tbody>
                        </table>
                        <div id="buttinsert">
                            <input type="text" name="employee" value="{{ $search }}" hidden />
                            <button class="btn btn-lg btn-success" type="submit">
                                ASSOCIA
                            </button>
                        </div>
                        </form>

/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $subareas = $request->subarea;

    for ($i = 0; $i < count($subareas); $i++) {
        $subarea = $subareas;
        $area = $request->selezionearea;
        $employee = $request->employee;

        DB::insert(
            'insert into assoc (nome_area,employee,subarea)
        values (?,?,?)',
            [$area, $employee, $subarea]
        );

        DB::table('personale')->where('nome_cognome', $employee)->update(['status' => 'Assegnato']);

        return $this->index($request)->withErrors(['msgSuccess' => 'Associazione Completata']);
    }

error : Array to string conversion

Upvotes: 0

Views: 60

Answers (1)

Khang Tran
Khang Tran

Reputation: 2315

Because $subareas is an array, you can't insert to table. You should also insert multiple records to table one time. You can consider doing:

$insertedData = [];

foreach ($subareas as $subarea) {
    $insertedData[] = [
        'nome_area' => $request->selezionearea,
        'employee' => $request->employee,
        'subarea' => $subarea
    ];
}

DB::table('assoc')->insert($insertedData);

DB::table('personale')->where('nome_cognome', $request->employee)->update(['status' => 'Assegnato']);

return $this->index($request)->withErrors(['msgSuccess' => 'Associazione Completata']);

Upvotes: 1

Related Questions