Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用POST处理php中动态生成的多个输入字段_Php_Html - Fatal编程技术网

如何使用POST处理php中动态生成的多个输入字段

如何使用POST处理php中动态生成的多个输入字段,php,html,Php,Html,这是html/php代码 <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"> <div id="input"> <label for="package">Package</label> <input type=&q

这是html/php代码

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
    <div id="input">
        <label for="package">Package</label>
        <input type="text" name="package[]">
        <label for="price">Price</label>
        <input type="text" name="price[]">
        <input type="button" value="add" onClick="addInput('input');">
        <input type="submit" name="submit" value="Add Package">
    </div>
</form>

在处理package和price的php代码中,您应该使用foreach循环,查看下面的示例(这里我假设package和price数组大小相同,并且不是关联数组)。使用foreach循环遍历数组

$i = 0;
for($_POST['package'] as $package) {
    $price = $_POST['price'][$i];
    //your sql insert of package&price couple
    $i++
}

当您插入HTML时,您给所有内容都起了相同的名字。当提交时,web服务器不确定您想要哪一个,所以它只使用其中的一个值——在您的情况下,它似乎是最后一个值

如果将控件的名称更改为在末尾添加
[]
(例如
),则服务器会将其视为一个数组,您可以获得所有值

如果您在PHP中执行
var\u dump($\u POST)
,您应该会看到一个package和price的值数组。然后,在服务器端,我们可以循环使用这些

for($i=0;$i
您在PHP方面做了哪些尝试?您是否看过例如
var\u dump($\u POST)?不,我使用了$\u POST['name']。这样,我只得到用户提供的最后一个值。您发布的代码中没有名为
name
的字段。名称只是一个占位符。我使用了
$\u POST['package']
您缺少该代码中名称的
[]
大括号,这就是您的数据不会作为数组发布的原因。
$i = 0;
for($_POST['package'] as $package) {
    $price = $_POST['price'][$i];
    //your sql insert of package&price couple
    $i++
}