使用循环查找POST变量


Use a loop to look through POST variables

我试图使一个POST方法,将接收一个值从表(这是动态生成的)。该值将等于公司名称,并且将在那里添加一个隐藏字段,等于公司名称+"id"。

下面是我的代码:

if(isset($_POST))
{
    foreach ( $users as $balance_user ) {
        if(isset($_POST[$balance_user]))
        {
            //update user meta with new balance
            $newBalance = $_POST[$balance_user];
            $postedID = $_POST[$balance_user.'id'];
            update_user_meta($postedID, 'balance', $newBalance);
        }
    }
}

我一直得到错误 isset中的非法偏移类型或空。我可以不这样传递变量吗?例如,如果一家公司名为Acme,并且特别命名的input中有一个值,我想在POST方法中循环遍历所有公司,如果循环的这一部分等于传递给变量的公司,它应该做一些事情。

添加这三行来查看数据,正如其他人所指出的那样,显然您假设在$balance_user中存在某个值,而这个值不存在,或者是不同的。

echo '<pre>:';
var_dump($balance_user);
echo ':</pre>';
if(isset($_POST[$balance_user]))

pre使调试输出更容易阅读。: . .:将显示空值。

一旦运行,您可能会发现$users中的一个条目是空的。

输出顺序将显示空用户值的位置。

然而:

$postedID = $_POST[$balance_user.'id'];

也可能是错误源,是否有post值。输入$balance_user == fred

fredid
如果没有

,当然你会立即得到那个错误。你没有给出错误的行号,所以我不知道是哪行,行号会立即显示。