У меня есть следующая форма HTML, которая динамически генерируется из таблицы в базе данных MySQL.
<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>
Я ищу способ сделать так, чтобы при отправке формы в $ _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 ) )
Я пробовал различные комбинации name = 'chapter [] [id]' / name = 'chapter [] [name]' / name = 'chapter [] [password]' с небольшим успехом. Структура данных массива никогда не выглядит так, как я хочу, чтобы она выглядела.
Есть идеи?
Для меня работали:
<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]'>
Вы можете просто создать свою форму, как это
<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>
Пример PHP
if(isset($_POST['chapters'])) { echo "<pre>"; print_r($_POST['chapters']); }
Образец вывода
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 ) )