2013-02-16 17 views
0

如何迭代$ departments数组并检验它是否等于$ name变量值,并在列表中返回“checked”。部门是复选框

function isChecked($name) { 
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array(); 
foreach ($departments as $key => $value) { 
    // this next line here is wrong 
    if($departments[$key][$value] == $name) { 
     return "checked"; 
    };  
} 
return ""; 

}

+0

什么是您的形式是什么样子?它是你正在测试的关键还是值? – 2013-02-16 03:37:11

+0

与您最后一个问题相关。此代码不起作用。我认为最后一个问题的代码是正确的。 – didierc 2013-02-16 03:37:45

回答

1

你指的是$value错误foreach循环内的数组。 $value包含它所说的内容,阵列内的值。

function isChecked($name) { 
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array(); 
foreach ($departments as $key => $value) { 
    if($value == $name) { 
     return "checked"; 
    }; 
} 
return ""; 
} 
+0

谢谢你的工作 – ONYX 2013-02-16 03:49:45

0

你要为使用

if ($departments[$key] == $name) { ... } 

if ($value == $name) { ... } 

$department[$key]让你在$key$department数组中的值,但该值也很有帮助,因为你存储在$value在循环定义中设置它。

0

试试这个。

function isChecked($name) { 
    return isset($_POST['interests'][$name]); 
} 

如果需要如果为true返回字符串值checked的功能,你可以做到这一点。

return isset($_POST['interests'][$name]) ? 'checked' : ''; 
+0

我试过你的方式,它不起作用 – ONYX 2013-02-16 03:46:40

+0

你能告诉我们'$ _POST ['interest']'的结构吗? – 2013-02-16 03:48:25

1

代替if($部门[$关键] [$值] == $名)

使用

if($value == $name)