获取基于变量的字段数

时间:2015-03-16 15:01:23

标签: php html pdo mysqli phpmyadmin

我的插入内容如下:

function train_add() {
            $sql = "INSERT INTO train_information "
        . "(train_name, tare_weight, number_of_bogies, number_of_axles, wheel_diameter_min, wheel_diameter_max)"
        . "VALUES (:train_name, :tare_weight, :number_of_bogies, :number_of_axles, :wheel_diameter_min, :wheel_diameter_max) ";
            $sth = $this->pdo->prepare($sql);
            $sth->bindParam(':train_name', $_POST['train_name'], PDO::PARAM_STR);
            $sth->bindParam(':tare_weight', $_POST['tare_weight'], PDO::PARAM_STR);
            $sth->bindParam(':number_of_bogies', $_POST['number_of_bogies'], PDO::PARAM_STR);
            $sth->bindParam(':number_of_axles', $_POST['number_of_axles'], PDO::PARAM_STR);
            $sth->bindParam(':wheel_diameter_min', $_POST['wheel_diameter_min'], PDO::PARAM_STR);
            $sth->bindParam(':wheel_diameter_max', $_POST['wheel_diameter_max'], PDO::PARAM_STR);
            $sth->execute();    
        }

我通过表格插入:

<div id='toevoegen_trein'>
            <form action="add_train_send.php" method="post">
                <table>
                    <tr>
                        <td>Train Name:</td>
                        <td><input type="text" name="train_name" required><br></td>
                    </tr>

                    <tr>
                        <td>Tare Weight:</td>
                        <td><input type="text" name="tare_weight" required><br></td>
                    </tr>
                    <tr>
                        <td>Number of Bogies:</td>
                        <td><input type="text" name="number_of_bogies" required><br></td>
                    </tr>
                    <tr>
                        <td>Number of Axles:</td>
                        <td><input type="text" name="number_of_axles"><br></td>
                    </tr>
                    <tr>
                        <td>Wheel Diameter Minimal:</td>
                        <td><input type="text" name="wheel_diameter_min"><br></td>
                    </tr>
                    <tr>
                        <td>Wheel Diameter Maximal:</td>
                        <td><input type="text" name="wheel_diameter_max"><br></td>
                    </tr>
                    <tr>
                        <td><input type="submit" name="toevoegen" value="Next"></td>
                    </tr>
                </table>
            </form>
        </div>

add_train_send.php:

<?php
    $add_train = $database->train_add();
?>

现在。当我按下表单上的提交时,它会转到add_train_send.php。 我希望该页面不仅仅是将信息发送到数据库。但我想得到车轴的数量。 (然后就像填充它们后面的字段)。 现在我不知道该怎么做。因为如果轴的数量是6我只希望页面创建6个字段。如果轴数为12,我希望它创建12个字段。

我该怎么做?

编辑:这是我希望它看起来的一个例子:

enter image description here

同样在我的数据库中,我有一个名为axle的表 内容:

train_id
axle_id
axle
distance

它已经有一个触发器,所以当我插入一个有12个轴的火车时,它会使12个轴增加12个轴,所有我需要做的就是填补距离(参见.png示例)

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望显示 X 数量的文本字段(或任何输入类型。 X 轴数的用户输入

要做到这一点,你需要获得你已经拥有的轴数的值:$_POST['number_of_axles']

之后,你会经历一次for strong循环 X 。我也注意到你的车轴数量不是必需的,但其他一些领域是。因此,您首先需要检查$_POST['number_of_axles'] isset。所以你这样开始:

if(isset($_POST['number_of_axles'])){
   for($i=0; $i<$_POST['number_of_axles']; $i++){
      echo "<input type='text' name='axles[$i]'>";
   }
}

现在,您可以在for循环之外启动表单,并将其结束于for循环之外。

修改

我也忘了提及name部分。我声明了这样的名字:name='axles[$i]'以确保每个文本字段都有不同的名称。现在,当您检查$_POST['axles']时。你会得到一个类似的数组:

[1]=>'input_of_axle1'
[2]=>'input_of_axle2'
[3]=>'input_of_axle3'

现在你可以循环浏览它。像这样:

$axles = $_POST['axles'];

foreach($axles as $axle){
   echo 'This is an axle:'.$axle; // I have no idea what an axle is
}