所以我让顾客填写一张表格。该表单包含以下信息:
name, weight, number of axles, number of bogies
等。
一旦填写了表单,它就会被发送到数据库,放在表train_information中,如下所示:

现在,填充是FK,也是插入列车后的表axle。下面的表格是这样的:

现在,我要说的是:
<div id="distances">
<tr>
<?php
$_POST['number_of_axles'];
if(isset($_POST['number_of_axles'])){
for($i=0; $i<$_POST['number_of_axles']; $i++){
echo "<td>" . "<input type='text' placeholder='Distance $i' id='field' name='distance[$i]'>" . "</td>";
}
}
?>
</tr>
</div>这是在他们提交表单之后,另一个页面显示了基于轴数的文本字段的数量。例如:他们输入了12个轴(参见图像)。他们现在可以看到12个文本字段。在这些字段中,他们需要添加距离。当他们按下submit (提交按钮还没有)时,我希望在表axle中填入距离。(参见第二张图片,其中现在显示为空)
我该怎么做?
发布于 2015-03-31 21:49:01
您可以遍历$_POST‘’distance‘,此时它将是一个数组,因此构建插入查询。但您还需要传递train_id。
$train_id = $_POST['train_id'];
$distances = $_POST['distance'];
$sql = "INSERT INTO axle VALUES ";
$values = array();
foreach ($distances as $axle => $distance) {
$values = " (NULL, $train_id, $axle, $distance)";
}
$sql .= implode($values, ",");
$sql .= ';';这是一个简单的实现,用于构建查询可以(也许应该)更改,以适合在PDO或其他库中工作。
发布于 2015-03-31 22:04:07
使用axle_id作为input name属性的一部分:name=distance[$axle_id]。例如:
axles.php
<?php
// assuming db connection $conn available
// insert train info, makes mysqli_insert_id available
// form action="axles_update.php"
$result = mysqli_query($conn, // mysqli_insert_id is trusted
"SELECT axle_id FROM axle WHERE train_id = " . mysqli_insert_id($conn));
$ii = 1;
while ($row = mysqli_fetch_assoc($result)){
echo "<td><input type='text' placeholder='Distance " . $ii+ .
"' id='field' name='distance[" . $row['axle_id'] . "]'></td>\n";
}
?>update_axles.php
<?php
// assuming db connection $conn available
$stmt = mysqli_prepare($conn, "UPDATE axle SET distance = ? WHERE axle_id = ?");
mysqli_stmt_bind_param($stmt, 'si', $value, $key);
foreach ( $_POST['distance'] as $key => $value ) {
if ( '' != $value ) { mysqli_stmt_execute($stmt); }
}
mysqli_stmt_close($stmt);
?>这里缺少很多细节和检查,但它显示了基本概念。
https://stackoverflow.com/questions/29369223
复制相似问题