2013-02-16 21 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)