我试图使一个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
如果没有,当然你会立即得到那个错误。你没有给出错误的行号,所以我不知道是哪行,行号会立即显示。