问题
I have the following dynamic table generated from database.
<form method="post">
<?php
while($result = mysqli_fetch_array($tableQueryExecute)){
$shift1Oa = $result['operator1'];
$shift2Oa = $result['operator2'];
$shift3Oa = $result['operator3'];
$shift4Oa = $result['operator4'];
$id = $result['srNumber'];
echo '<td scope="row">'.$id.'</td>
<td>
<input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="'.$shift1Oa.'" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="'.$shift2Oa.'" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="'.$shift3Oa.'" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="'.$shift4Oa.'" disabled>
</td>
<td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="'.date("Y-m-d").'"></td>
<td>
<a href="supervisorEdit.php?source='.$id.'" type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">Save</a>
</td>';
}
</form>
What I need
Lets say user clicked Save button of a particular row of that table, I want the respective values of that row to be saved in database using php $_POST or $_GET method something like the following
if(isset($_GET['source'])){
$sourceId = $_GET['source'];
}
Issue
My issue is, I don't know how to get the $_POST values of the form since name of every items are dynamically generating. I tried to make the name unique to each element by adding the unique $id value to it as per the following.
<input type="text" class="form-control" id="shift1Oa" name="shift1Oa'.$id.'" value="'.$shift1Oa.'" disabled>
I can't capture this unique name values by the following method. Does anyone know why?
if(isset($_GET['source'])){
$sourceId = $_GET['source'];
echo $_GET['shift1Oa'.$sourceId];
}
Edit 1
To get a better picture, following is the screenshot of a row with the button
回答1:
Correct Me If I am not wrong.. Here you want to get the all value from a form Right? on click of button submit? Why you are making this button href? Suppose we have 3 data into my $result and loops look like below
<form method="post" action="">
<tr>
<td scope="row"></td>
<input type ="text" name="sourece" value=1 />
<td>
<input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="1" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="2" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="3" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="4" disabled>
</td>
<td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>
<td>
<input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
</td>
</form>
</tr>
<form method="post" action="">
<tr>
<td scope="row"></td>
<input type ="text" name="sourece" value=2 />
<td>
<input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="11" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="22" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="33" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="44" disabled>
</td>
<td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>
<td>
<input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
</td>
</form>
</tr>
<form method="post" action="">
<tr>
<td scope="row"></td>
<input type ="text" name="sourece" value=3 />
<td>
<input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="111" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="222" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="333" disabled>
</td>
<td>
<input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
</td>
<td>
<input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="444" disabled>
</td>
<td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>
<td>
<input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
</td>
</form>
</tr>
<?php
if(isset($_POST['savePcData'])){
echo "<pre>";
print_r($_POST);
die('mms');
}
?>
Your Out put will be
here sourece is your unique Id which helps you to update the data into your DB
After submitting the form from any tr(row) you will redirect to same page with POST method and get data for that particular row on that page so you can easily update it as you want
You can check this by using print_r($_POST); on same page
If you have any questions please feel free to ask me...
来源:https://stackoverflow.com/questions/59463639/capture-values-of-html-elements-in-a-dynamic-table