我有一些简单的 PHP 代码,它们将生成具有“car_init$i”和“car_num$i”命名方案的新文本框。其中 $i = 1 并且我使用 i++ 来增加它。我遇到的问题是,虽然用户最多可以生成 70 个文本框,但它可以是 1 到 70 之间的任何数字。因此,如果用户只需要 46 个文本框,我可以在页面上有 46 个文本框作为示例. 所以我会使用 car_num1、car_num2、car_init1、car_init2 等作为我的表单名称。
Car_ID 将是我的自动递增主键,并且我将有 2 列 car_num 和 car_init。是否可以这样做: INSERT INTO dbo (car_init, car_num) VALUES (car_init$i, car_num$i) 然后使用 $i = 1 和 i++ 来增加它,同时将所有值添加到新行?Car_id = 1 将在各自的列中包含 car_num1 和 car_init1 信息,Car_id = 2 将包含 car_num2 和 car_init2 信息,依此类推。
编辑:所以这是我现在拥有的代码:
$car_num = $_POST["car_num"];
foreach($_POST['car_init'] as $key => $car_init)
{
// your insert query
$sql = "INSERT INTO CustBill_cars (C_ID, car_init, car_num) VALUES ('1', '".$car_init."', '".$car_num[$key]."')";
}
每次我添加到我的数据库时会发生什么,只有我输入的最后一件事被输入。因此,如果我需要 3 辆汽车,那就是 6 个文本框,但只有页面上的最后一个文本框是输入的文本框。
编辑 2:这就是我的文本框的生成方式。所有文本框都按照您所说的方式使用'car_init []'和'car_num []'。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$i = 1;
while ($i <= $_POST['carAmount'] AND $i <= 70) {
// Now print the text box to the screen
echo "<b>$i</b>. Car Initial: <input type=\"text\" class='element text small' name=\"car_init[]\" maxlength='4' id='car_init[]' /> ";
echo "Number: <input type=\"text\" class='element text small' name=\"car_num[]\" maxlength='6' id='car_num[]' /><br>";
$i++;
}
}