0

我有一个如下表单,它允许用户通过添加更多按钮添加更多输入字段。我的问题是如何在 POST 中检索数组并将它们回显出来。如您所见,我有两个名称为 product[] 和 quantity[] 的输入字段(可以添加更多字段)。我必须使用 aa foreach 循环获取字段的值,并将其存储在要在 mail() 中使用的变量 $message 中。我已经为每个循环和我的每个循环代码都尝试了一个 for each 循环,如下所示

$product = $_POST['product'];
$quantity = $_POST['quantity'];

foreach($product as $value)
{
    $message = "<html><head>
        <title></title>
        </head>
        <body>
        <table> 
            <tr>
                <td>".$value."";
}

foreach($quantity as $value)
{
    $message.=" </td>
                <td>".$value."</td>
            </tr>
        </table>
        </body>
        </html>";
}

我的输入表单

 <form id="quick_post" method="post"> 
<table id="input_fields">
    <tr> 
        <td><input class="orderinput" type="text" name="product[]" /></td> 
        <td><input class="orderquan" type="text" name="quantity[]" size="1" maxlength="3" /></td>
    </tr>
 </tr>
</table>

<input class="more" type="button" value="Addmore" name="addmore" /> // a jquery script is processed on click to add more fields.       
<input class="send" type="submit" value="Send" name="send" /></form>

对此的输出是我只打印了第一行产品,剩下的行只打印或回显了数量。如下

Product Name  Quantity
aaaaaa       22 
             33 
4

3 回答 3

2

问题在于,在您的第一个foreach循环中,您只是覆盖了$message变量,并且最后一个产品名称被传递给了第二个循环。

尝试这个

echo "<html><head><title></title></head> <body> <table>";
for($i=0 ; $i < count($product) ; $i++) 
{
    echo "<tr><td>".$product[$i]."</td>";
    echo "<td>".$quantity[$i]."</td></tr>";
}

echo "</table></body></html>";
于 2013-05-13T05:28:26.683 回答
0

不确定,但在第一个 foreach 中,您可能需要连接 $message,因为您已经为 $quantity 的第二个 foreach 完成了它。

于 2013-05-13T05:30:45.240 回答
0

$product = $_POST['product'];

$数量 = $_POST['数量'];

for($i=0 ; $i < sizeof($product) ; $i++) {

        $message.="<tr>
            <td>".$product[$i]."</td>
            <td>".$quantity[$i]."</td>
              </tr>";

}

于 2013-05-13T07:37:04.810 回答