以前我的代码看起来像这样:
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '<option value="' . xtc_parse_input_field_data($values[$i]['id'], array('"' => '"')) . '"';
if ($default == $values[$i]['id']) {
$field .= ' selected="selected"';
}
$field .= '>' . xtc_parse_input_field_data($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
根据一些建议我改为:
if (is_array($values) && count($values) > 0) {
foreach ($values as $value) {
$field .= '<option value="' . xtc_parse_input_field_data($value['id'], array('"' => '"')) . '"';
if ($default == $value['id']) {
$field .= ' selected="selected"';
}
$field .= '>' . xtc_parse_input_field_data($value['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
}
但错误仍然存在:
注意:未定义索引:E:\ xampp \ htdocs \ testshop \ inc \ xtc_draw_pull_down_menu.inc.php中的id
造成此错误的原因是什么?
答案 0 :(得分:0)
我会说警告基本上与您粘贴的代码没有任何关系,而是与$value
没有名为{{1}的索引的事实有关。首先。因此,为了修复它,您必须检查源 - 生成/存储id
的位置,以查看为什么有一些没有id的值。
话虽如此,为了防止您的代码中出现不必要的通知,您可以添加以下行来测试名为$values
的索引是否存在,然后继续:
id
您可以在if(array_key_exists('id',$value)) {
//do all your stuff
}
之后的行下面添加此项,这样,只有foreach ($values as $value) {
具有$value
元素时才会在循环内执行所有操作。
但如前所述,如果您希望每个id
肯定都有$value
,请返回生成id
的位置并查看其中的内容。