mysql — отправляет несколько полей с одним и тем же именем в переполнение стека

Я хочу создать таблицу, которую пользователи могут заполнять значениями и отправлять в базу данных. Каждая строка таблицы должна быть сохранена как отдельная строка в таблице. Пример таблицы приведен ниже.

First | Last  | Phone
Steve | Jones | 1234
Jason | Smith | 4567
Mark  | Black | 6789

Submit

Я создаю свою таблицу как форму и отправляю с помощью POST. Как я могу отправить каждую строку как отдельную строку в свою базу данных, используя только одну кнопку отправки?

1

Решение

<input ... name="contact[1][first]">
<input ... name="contact[1][last]">
<input ... name="contact[1][phone]">
...
<input ... name="contact[2][first]">
<input ... name="contact[2][last]">
<input ... name="contact[2][phone]">

Также проверьте этот вопрос.

Постскриптум вам нужно гуглить лучше.

0

Другие решения

<form method='POST' action='submitPage.php'>
<table>
<tr>
<td><input name='first[]'></td>
<td><input name='last[]'></td>
<td><input name='phone[]'></td>
</tr>
<tr>
<td><input name='first[]'></td>
<td><input name='last[]'></td>
<td><input name='phone[]'></td>
</tr>
.
.
</table>
<input type='submit' value='submit details'>
</form>

submitPage.php

<?
$first = $_POST['first'];
$last = $_POST['last'];
$phone = $_POST['phone'];

$totalFirstName = sizeof($first);

for($i=0;$i<$totalFirstName;$i++)
{
$FirstName = $first[$i];
$LastName = $last[$i];
$Phone = $phone[$i];

$Query = "INSERT INTO TableName SET first='$FirstName', last='$LastName', phone='$Phone'";
//Execute Your Query
}

?>
1

<form>
<fieldset>
<input name="first[]" type="text"/>
....

Может быть полезно для вас, если имена полей в качестве массивов позволяют вам их перебирать, например:

<?php
$firsts = $_POST["first"];
$lasts = $_POST["lasts"];
$num = $_POST["numbers"];

if(count($firsts) == count($lasts) == count($num) {
for($i = 0; $i < count($firsts); $i++) {
$toSubmit = [$firsts[$i], $lasts[$i], $num[$i]];
// put that into your SQL inserts w/e.
}
}
?>
0
По вопросам рекламы [email protected]