我试图制作一个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,并且特别命名的输入中有一个值,我想在POST方法中循环遍历所有公司,如果循环的那部分等于传入变量的公司,那么应该做点什么。
答案 0 :(得分:0)
添加这三行以查看数据,正如其他人所指出的那样,显然你假设某些值在$ 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
如果没有,当然你会立即得到错误。你没有给出错误的行号,所以我不知道它是什么,行号会立即显示。