<form action="includes/xxx.php" method="get">
<td><?php echo $row['id'];
$_SESSION['id'] = $row['id'];
?>
</td>
<td><?php echo $row['length']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['value'];
$_SESSION['value'] = $row['value'];
?>
</td>
<td><input type="text" name="value" placeholder="XXX"></td>
<td><button type="submit" name="submit" value="submit"> OK </button> </td>
</form>
In the upper code, I’m displaying my db table with a while loop
Each row has ID
/LENGTH
/NAME
/VALUE
/INPUT
/BUTTON
.
I get a value from the user, and I want to add it with the value in the same row and then update my db table.
GET method / displaying / SESSIONS and Update are done, but when I’m filling the input field the result saved in the last id.
I know that my code overwrites something and it can’t understand what input I filled up.
How can I solved it?
Advertisement
Answer
Don’t use sessions this way. Add a separate hidden input box to send the ID to the server for processing.
<td>
<input type="hidden" name="row_id" value="<?php echo $row['id']; ?>">
<input type="text" name="value" placeholder="XXX">
</td>
Now when you submit the form you will have 2 values, $_GET['row_id']
and $_GET['value']
. Use the row_id
to update the row you are trying to change.
If needed, you can still set the session values when you are processing the submitted form.