【发布时间】:2010-12-20 17:32:39
【问题描述】:
我在此代码的第 3、6 和 7 行收到未定义索引“id”的通知。我不知道我做错了什么:
if ( isset($_POST['action']) && $_POST['action'] == 'save' ) {
foreach ($options as $value) {
if(($value['type'] === "checkbox" or $value['type'] === "multiselect" ) and is_array($_REQUEST[ $value['id'] ]))
{ $_REQUEST[ $value['id'] ]=implode(',',$_REQUEST[ $value['id'] ]); //This will take from the array and make one string
}
$key = $value['id'];
$val = $_REQUEST[$key];
$settings[$key] = $val;
}
我认为这是一个需要解决的小问题,但我尝试过的任何事情都没有运气。我做的一件事是运行 var_dump($key) ,有时 $key 为空,有时不是。所以我假设它与这个有关。
顺便说一下,这是 WordPress 主题选项页面的一部分。这是作为“保存”功能的一部分运行的代码。
如果关闭调试模式,脚本实际上可以正常工作,但是当调试模式打开时,当点击选项页面上的保存按钮时会弹出这些通知。提前感谢您的任何见解,如果我需要发布更多代码以提供更多上下文,请告诉我。
编辑:我已经在 pastebin 中发布了选项页面。它的长。它包含 t13lo 的修复。问题代码在1957行。感谢:http://pastebin.com/NGX6qzgr
【问题讨论】:
-
我认为你值得我投反对票,第 1 行是做什么的?
-
对不起,我不明白你所说的“第一行是做什么的”是什么意思......我做错了什么吗?您是在问第 1 行是做什么的吗?应该是保存选项...我也是编程新手,所以如果我做了一些非常愚蠢的事情,请告诉我!
-
很抱歉,您能提供更多细节吗?我是新手,哈哈!
-
@orbit82,你有三个左大括号,但只有两个右大括号。
-
@Geoffrey Van Wyk - 我没有发布所有代码,只发布了相关代码,以便解释缺少的右括号。