How would I create this array structure in an HTML form?

此生再无相见时 提交于 2019-12-31 01:26:13

问题


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?


回答1:


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]'>



回答2:


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
        )

)


来源:https://stackoverflow.com/questions/12557283/how-would-i-create-this-array-structure-in-an-html-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!