【问题标题】:How to retrieve text fields as an array in PHP如何在 PHP 中将文本字段作为数组检索
【发布时间】:2013-05-13 05:21:22
【问题描述】:

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

【问题讨论】:

  • 你的循环中有头部/标题标签等,你不希望这些重复
  • 我的尝试是发送 html 邮件。我想,我可以移动循环中的 html 和 head 标签。

标签: php post foreach


【解决方案1】:

问题在于,在您的第一个 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>";

【讨论】:

  • 感谢您提供的简单代码。作为一个初学者,我把一切都搞砸了。 :)
  • @RajaMOhammed 欢迎.. :)
【解决方案2】:

不确定,但在第一个 foreach 中,您可能需要连接 $message,就像您为 $quantity 的第二个 foreach 所做的那样。

【讨论】:

    【解决方案3】:

    $product = $_POST['product'];

    $quantity = $_POST['quantity'];

    for($i=0 ; $i

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

    }

    【讨论】:

    • 将表格开始标签连接到循环前的消息变量和循环后的表格结束标签
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多