私は現在インボイスジェネレータを設計しようとしています。基本的に、このページにはテーブルの横に入力フィールドがあり、追加の行を作成してより多くのデータを入力できます。テーブル内の複数の行に同じ入力名変数を使用するデータベースにデータを挿入する方法はありますか?
私は私の現在の問題は、データベースにテーブルからデータを取得している
ダウンロードPDFファイルに変換され、このデータは、将来的に呼ばれるようにデータベースに格納する必要があります。これまでのところ、私のコードはデータの最初の行だけを入力します。私はこれについて完全に間違った方法を行っていますか?
<tr id="item0" class="item">
<td>
1
</td>
<td>
<input name='item_name[0]' type='text' placeholder='Name' class='form-control input-md' />
</td>
<td>
<input name='quantity[0]' type='text' placeholder='0' class='form-control input-md' />
</td>
<td>
<input name='price[0]' type='text' placeholder='£0.00' class='form-control input-md' />
</td>
<td>
total
</td>
</tr>
<tr id="item1" class="item">
<td>
1
</td>
<td>
<input name='item_name[1]' type='text' placeholder='Name' class='form-control input-md' />
</td>
<td>
<input name='quantity[1]' type='text' placeholder='0' class='form-control input-md' />
</td>
<td>
<input name='price[1]' type='text' placeholder='£0.00' class='form-control input-md' />
</td>
<td>
total
</td>
</tr>
とPHP ... idフィールドを想定し
if (isset($_POST['submit'])) {
print_r(array_values($_POST['item_name']));
}
$i = 0;
foreach($_POST as $val) {
$item_name = $_POST['item_name'][$i];
$quantity = $_POST['quantity'][$i];
$price = $_POST['price'][$i];
$sqlConnect - > query("INSERT INTO `Invoices` (`id`, `item_name`, `quantity`, `price`) VALUES ('".$i.
"', '".$item_name.
"', '".$quantity.
"', '".$price.
"')");
$i++;
}
}
else {
die('No item data to process');
}
なぜ '$ _POST'を反復するのですか? '$ _POST'のキーの数はあなたの項目名の数と同じではないかもしれません。 –
ループは間違っていますが、@ u_mulderは2行でも動作するはずです。$ iは0から5までの範囲です。 – inarilo
代わりに項目名の数を調べるにはどうすればよいですか? –