<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.