For Each Loop By Form A Multiple Values Submit

for each loop by  form a multiple values submit
Foreach by using multiple value submit

HTML markup

<form action="/quiztest" method="POST">
    @csrf
    <table>
        @foreach($datas as $dat)
            <tr>
                <td>
                    {{ $dat['quizserial'] }}
                    <div class="form-group">
                        <input type="hidden" class="form-control" value="{{ $dat['quizserial'] }}" name="quizserial[]">
                    </div>
                </td>
                <td>
                    {{ $dat['quiz'] }}
                    <div class="form-group">
                        <input type="hidden" class="form-control" value="{{ $dat['quiz'] }}" name="quiz[]">
                    </div>
                </td>
            </tr>
            <tr>
                <td>
                    <div class="form-check">
                        <input type="radio" class="form-check-input" name="anssubmit[{{ $loop->index }}]" value="{{ $dat['option1'] }}" checked>
                        <label class="form-check-label" for="anssubmit_{{ $loop->index }}">{{ $dat['option1'] }}</label>
                    </div>
                    <div class="form-check">
                        <input type="radio" class="form-check-input" name="anssubmit[{{ $loop->index }}]" value="{{ $dat['option2'] }}">
                        <label class="form-check-label" for="anssubmit_{{ $loop->index }}">{{ $dat['option2'] }}</label>
                    </div>
                    <!-- Add more options if needed -->
                </td>
            </tr>
        @endforeach
    </table>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>

Submiting controller code

Way one

public function savetest(Request $req)
{
    // Validate the incoming request data
    $validatedData = $req->validate([
        'quizserial.*' => 'required|string',
        'quiz.*' => 'required|string',
        'anssubmit.*' => 'required|string',
    ]);

    // Loop through each quiz item and save
    foreach ($validatedData['quizserial'] as $index => $quizserial) {
        Quizcreation::updateOrCreate(
            ['quizserial' => $quizserial],
            [
                'quiz' => $validatedData['quiz'][$index],
                'anssubmit' => $validatedData['anssubmit'][$index],
            ]
        );
    }

    // Redirect back with a success message
    return redirect()->back()->with('success', 'Quiz data saved successfully.');
}

Way two

public function savetest(Request $req)
{
    // Retrieve data from the request
    $quizserials = $req->input('quizserial');
    $quizzes = $req->input('quiz');
    $anssubmits = $req->input('anssubmit');

    // Check if all inputs have been provided
    if (count($quizserials) !== count($quizzes) || count($quizserials) !== count($anssubmits)) {
        return redirect()->back()->with('error', 'Mismatched data count.');
    }

    // Iterate over the data and save each item
    foreach ($quizserials as $key => $quizserial) {
        $data = new Quizcreation;
        $data->id = $key + 1; // Adjust as needed; assuming you have a unique id or use auto-increment
        $data->quizserial = $quizserial;
        $data->quiz = $quizzes[$key];
        $data->anssubmit = $anssubmits[$key];
        // You may need to handle other fields as well
        $data->save();
    }

    // Redirect back with a success message
    return redirect()->back()->with('success', 'Quiz data saved successfully.');
}

way three

public function savetest(Request $req)
{
    // Retrieve data from the request
    $quizserials = $req->input('quizserial');
    $quizzes = $req->input('quiz');
    $anssubmits = $req->input('anssubmit');

    // Iterate over the data and save each item
    foreach ($quizserials as $index => $quizserial) {
        $data = new Quizcreation;
        $data->quizserial = $quizserial[$index];
        $data->quiz = $quizzes[$index];
        $data->anssubmit = $anssubmits[$index];
        // Set other fields as needed
        $data->save();
    }

    // Redirect back with a success message
    return redirect()->back()->with('success', 'Quiz data saved successfully.');
}

way four


public function savetest (Request $req)
{

foreach($req as $key => $items){

			$data=new Quizcreation;
			$data->id=$req->id[$key];
			$data->quizserial=$req->quizserial[$key];
			$data->quiz=$req->quiz[$key];
			$data->anssubmit=$req->anssubmit[$key];
			$data->correctanswer=$req->correctanswer[$key];
			$data->mark=$req->mark[$key];
			$data->markobtained=$req->markobtained[$key];
			$data->save();
			}
		
		return redirect()->back();
}

Route declare

Route::post('savetest', [controller::class, 'savetest']);

Write a Associte Comment
Markdown Editor