解析动态POST变量

时间:2014-10-22 15:13:02

标签: php

我有一个表单可以提交1个订单项或200个引用。使用FPDF创建结果,一切都运行良好,但我一直在寻找一种自动获取帖子值的方法。到目前为止,我一直在手动执行这些操作,这很难进行代码更改:

//conditional statement to verify values exist, otherwise we write a blank line
$item=$_POST['item3'];
$uprice=$_POST['uprice3'];
$udprice=$_POST['udprice3'];
$quan=$_POST['quan3'];
//add values to report
//repeat for next result
$item=$_POST['item4'];
$uprice=$_POST['uprice4'];
$udprice=$_POST['udprice4'];
$quan=$_POST['quan4'];

我想知道是否有办法在post值中添加变量,比如$ _POST [$ nextitem]?

2 个答案:

答案 0 :(得分:4)

您可以循环直到下一个号码不再可用:

<?php
$i = 1;
while (isset($_POST['item' . $i])) {
    $item = $_POST['item' . $i];
    $uprice = $_POST['uprice' . $i];
    $udprice = $_POST['udprice' . $i];
    $quan = $_POST['quan' . $i];

    // do your stuff

    $i++;
}

将字符串'var'与int 1连接将在PHP中生成字符串'var1'

答案 1 :(得分:1)

我只需使用$array = $_POST获取整个数组,然后使用foreach()循环稍后对其进行操作。

或者,听起来你的表单上有任意数量的东西。这样做:

<input type="text" name="item[]" />
<input type="text" name="quan[]" />
<input type="text" name="udprice[]" />


<input type="text" name="item[]" />
<input type="text" name="quan[]" />
<input type="text" name="udprice[]" />


<input type="text" name="item[]" />
<input type="text" name="quan[]" />
<input type="text" name="udprice[]" />


<input type="text" name="item[]" />
<input type="text" name="quan[]" />
<input type="text" name="udprice[]" />

您可以在这个非常有用的答案中看到更多相关信息:HERE

当你提交这个任意数量的字段时,你将得到一个漂亮的多维数组。像这样迭代它:

$i =  count($_POST['item']);
$payload = array();
while ($i <= count($_POST['item']) {
    $payload[] = array(
       'item' => $_POST['item'][$i],
       'udprice' => $_POST['item'][$i],
       'quan' => $_POST['quan'][$i]
    );
    $i++;

}

现在$payload是一个花哨的数组,可以插入数据库等。