I have a system where I need to list an arbitrary amount of employees with a textfield for each day of the week where an \"hours worked\" value can be entered.
So I need
I've never used the Laravel framework, but in general I do this in PHP:
foreach ($employee as $key=>$e) {
echo '<input type="text" name="hours[]" id="hours_'.$key.'" value="'.$e.'" />';
}
This way you will have an array of hours values in the POST, and you can reference the corresponding field by id if you need to. The first field will have id="hours_1", etc. Alternately, if you don't want to use the $key from the query, you can do this:
$cntr = 1;
foreach ($employee as $e) {
echo '<input type="text" name="hours[]" id="hours_'.$cntr.'" value="'.$e.'" />';
$cntr++;
}
When you capture the values in the POST, you will have an array of values in $_POST['hours']
. Remember that it is a zero based array, but you can use a foreach loop to iterate through the values.
<input type="text" name="hoursWorked[]" />
will internally convert to an array under $_POST['hoursWorked']
. That means you can do something like this:
<input type="text" name="hoursWorked[12345][]" /> <!-- Sunday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Monday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Tuesday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Wednesday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Thursday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Friday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Saturday -->
Then, in PHP:
<?php
foreach ($_POST['hoursWorked'] as $employeeId=>$dayArray) {
foreach ($dayArray as $dayOfWeek=>$hoursWorked) {
// $employeeId will be 12345
// $dayOfWeek will be 0, 1, 2, 3, 4, 5 ,6
// $hoursWorked will be the value of the text field
}
}