У меня есть цикл foreach, который выводит мои продукты в таблицу. Код показано ниже:PHP submit in loop table
<table class="table table-striped table-bordered table-hover" id="sample_2">
<thead>
<tr>
<th>ID</th>
<th>Product Name</th>
<th>Quantity</th>
<th style="width: 9%;"></th>
</tr>
</thead>
<tbody>
<?php foreach ($inputs as $package){
?>
<form action="" method="post">
<tr>
<td><?php echo $package->id; ?></td>
<td><?php echo $package->name; ?></td>
<td><input type="text" name="quantity" placeholder="Quantity for <?php echo $package->name; ?>" class="form-control"></td>
<td style="text-align: center;"><button name="submit" type="submit" id="submit" class="btn blue"><i class="fa fa-check"></i> submit</button></td>
</tr>
</form>
<?php }
?>
</tbody>
</table>
Хорошо я теперь нужно создать что-то, чтобы вставить поля в таблицу MySQL. Но как я могу получить $package->id, $package->name
, они просто эхо? Мне нужно вставить в это:
CREATE TABLE IF NOT EXISTS `shop_packages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`productid` int(11) NOT NULL,
`quantity` int(11) NOT NULL,
`worker` varchar(265) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Код для подавать 1.
if (isset($_POST['submit'])) {
$productid = $_POST['id'];
$productname = $_POST['name'];
$quantity = $_POST['quantity'];
$worker = $user['name'];
$workerid = $user['id'];
$result = $user->add_packages($productid,$productname,$quantity,$worker,$workerid);
}
print_r ($ _ POST [ 'пакет'])
Array ([0] => Array ([id] => 1) [1] => Array ([name] => Maxizoo Spåner 5 kg) [2] => Array ([quantity] =>) [3] => Array ([id] => 4) [4] => Array ([name] => Minihemp 4 kg.) [5] => Array ([quantity] =>) [6] => Array ([id] => 5) [7] => Array ([name] => Maxizoo Hø 2 kg.) [8] => Array ([quantity] => 2) [9] => Array ([id] => 6) [10] => Array ([name] => Maxizoo Halm 2 kg) [11] => Array ([quantity] => 1))
UPDATE:
if (isset($_POST['submit'])) {
foreach ($_POST['package'] as $p){
$productid = $p['id'];
$productname = $p['name'];
$quantity = $p['quantity'];
}
$worker = $user['name'];
$workerid = $user['id'];
$result = $user->add_packages($productid,$productname,$quantity,$worker,$workerid);
}
Можно ли отправить все в одно и то же время, поэтому он отправляет команду вставки для каждого? –
Конечно, если вы хотите отправить в базу данных больше пакетов, используйте массивы в атрибутах 'name'. В первом пакете скрытых входов будет 'name =" package [0] [name] ", name =" package [0] [id] "', для второго - 'name =" package [1] [name] ", name = "package [1] [id]" и т. д. В PHP это будет в массиве '$ _POST ['package']', попробуйте или посмотрите с помощью 'print_r' – panther
Можете ли вы взглянуть на новый код i добавлено, не знает, как это сделать. Функция add_packages просто вставляет. Код, который я добавил, работает только с одним продуктом, а не с целым циклом –