如何使用POST处理php中动态生成的多个输入字段
这是html/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
<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++
}