No Content Found
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']);