Reputation: 381
I have the following HTML form, which is being generated dynamically from a table in a MySQL database.
<form method="post" name="chapters" action="ChaptersUpdate.php">
<input type='text' name='id' value='{$row['id']}'>
<input type='text' name='name' value='{$row['name']}'>
<input type='password' name='password' value={$row['password']};>
<input type='submit'>
</form>
I am looking for a way to make it such that when the form is submitted, the following data structure gets passed in $_POST:
[chapter] => Array
(
[0] => Array
(
[id] => corresponding chapter ID
[name] => corresponding chapter name
[password] => corresponding chapter password
)
[1] => Array
(
[id] => corresponding chapter ID
[name] => corresponding chapter name
[password] => corresponding chapter password
)
)
I tried various combinations of name='chapter[][id]' / name='chapter[][name]' / name='chapter[][password]' with little success. The array data structure never looks like what I want it to look like.
Any ideas?
Upvotes: 4
Views: 1335
Reputation: 7722
The following appeared to work for me:
<input type='text' name='chapters[0][id]'>
<input type='text' name='chapters[0][name]'>
<input type='password' name='chapters[0][password]'>
<input type='text' name='chapters[1][id]'>
<input type='text' name='chapters[1][name]'>
<input type='password' name='chapters[1][password]'>
Upvotes: 2
Reputation: 95101
You can simply create your form like this
<form method="post" name="chapters">
<?php
for($i = 0; $i <3; $i++)
{
echo "ID: <input type='text' name='chapters[$i][id]' /> <br />";
echo "Name: <input type='text' name='chapters[$i][name]' /> <br />";
echo "Password: <input type='text' name='chapters[$i][password]' /> <br /> ";
echo "<Br />";
}
?>
<input type='submit'>
</form>
Sample PHP
if(isset($_POST['chapters']))
{
echo "<pre>";
print_r($_POST['chapters']);
}
Sample Output
Array
(
[0] => Array
(
[id] => 1
[name] => Name1
[password] => Password1
)
[1] => Array
(
[id] => 2
[name] => name 2
[password] => password 2
)
[2] => Array
(
[id] => 2
[name] => name 3
[password] => Password
)
)
Upvotes: 0