0

我有这个代码

HTML

<ul style="list-style:none;" id="listing">
<li>
<table id="pedido" action="post.php">
<form method="POST" >
<tr>
<td>
<select name="product[]">
    <option value="0">Perfil:</option>
    <option value="68mm 5 Cámaras AD rendszer egyenes szárny, ütköző tömítéssel">68mm 5 Cámaras 7001AD, con dos juntas</option>
    <option value="68mm 7 K AD rendszer íves szárny, ütköző tömítéssel">68mm 7 Cámaras 7001AD con dos juntas</option>
    <option value="80 mm 6 K Tok + 7 K íves szárny  AD rendszer, ütköző tömítéssel">80 mm Marco 6 Cámaras  + Hoja de 7 Cámaras 7001AD con dos juntas</option>
    <option value="68mm 7 K  MD rendszer ütköző és középtömítéses, íves szárny">68mm 7 Cámaras 7001MD con tres juntas</option>
    <option value="80 mm 8 K MD rendszer ütköző és középtömítéses, íves szárny">80 mm 8 Cámaras 7001MD con tres juntas</option>
</select>
</td>
</tr>
<tr>
<td>
<input name="h[]" value="Horizontal" class="comment" /> x
<input name="v[]" value="Vertical" class="comment" />
uds:
<input name="uds[]" style="width:60px;"/>
</td>
</tr>
<tr>
<td>
<select>
<option>Color</option>
</select>

Persiana <input type="checkbox" name="persiana[]" id="persiana"/> <div id="persianaver" style="float:right; display:none">Con motor<input type="radio" name="f[]" value="auto" /> Manual<input type="radio" name="f[]" value="manual" /></div>
</td>
<tr></tr>
<tr>
<td style="width:435px;">
<div id="persiaops" style="float:right; display:none">IMPORTANTE: En caso de haber seleccionado la opción persiana usted tiene que especificar el tamaño de la tapa del cajón (Lugar donde se sitúa la caja de persiana) Puede especificarlo en el campo comentario <a id="pregunta" href="images/demo.jpg"><img alt="pregunta" src="images/ask.jpg"  height="15" width="15"/></a> </div>
</td>
</tr>
<tr>
<td>
<textarea name="comment[]" rows="5" cols="59" class="comment">Comentario</textarea>
</td>
</tr>
</form>
</table>
</li>
</ul>

每个元素都称为 name[] 因为我想多次克隆表然后填写信息。但我的问题是:我怎样才能在 php 中获得这些 vales?我的意思是 $_POST['hello'] 如果已提交,我可以获得 hello 字段的内容,但是 $_POST['hello[]'] 呢?它将被存储为一个数组对象.. 但是我如何检查所有带有 name="hello" 的字段是否都正确填写?或者我需要将值存储为一个数组,然后在 post.php 中检查数组包含的所有元素是否正确?有没有简单的方法?

谢谢 ;)

4

3 回答 3

2

命名为product[]的字段可以在 PHP 中使用 $_POST["product"][0] 访问(对于第一个)。

您还可以遍历此数组:

foreach($_POST["product"] as $key => $product) {
    echo $product;
}

要检查是否所有字段都已填写,您应该添加一个运行时变量,每次克隆输入字段时都会对其进行计数:

<select name="product[0]">...
...
<select name="product[1]">...
...

然后您可以再次循环浏览产品:

foreach($_POST["product"] as $key => $product) {
    //check whether h is also filled:
    if($_POST["h"][$key] != "") {
        ...
    }
}
于 2012-04-04T16:08:36.387 回答
1

当 PHP 解析请求数据时,它们将被解释为数组。所以:

<input name="v[]" value="Vertical" class="comment" />
<input name="v[]" value="Horizontal" class="comment" />

将在 PHP 中可用,$_POST['v']如下所示:

Array
(
    [0] => Vertical
    [1] => Horizontal
)

它与 PHP 隐式数组推送的基本语法相同:

$v[] = 'Vertical';
$v[] = 'Horizontal';
于 2012-04-04T16:07:40.773 回答
0

您可以将它们作为数组获取:

echo $_POST['product'][0];

要查看您的$_POST数组结构,只需编写:

print_r($_POST);
于 2012-04-04T16:06:01.757 回答