這是毫無意義的人我試圖找出這個了幾個小時,並搜索遍佈此網站。在數據庫中,user_level爲1,2,3,作爲I imploded的值。我正在顯示覆選框,我希望在數值與數據庫中的值匹配時檢查它們。當數據庫中只有一個值(如user_level的1或2)時,它可以很好地工作。現在用1,2,3,我簡單地分解了值,然後使用in_array()來產生結果,如果是這樣,添加複選框。出於某種原因,這不起作用,隨機框似乎被檢查。下面是代碼:通過爆炸值檢查複選框
$sql = "SELECT user_level FROM table";
$result = query_db($sql);
$row = mysql_fetch_array($result);
$field_names = array(MEMBER => 'Member',
VISITOR => 'Visitor');
foreach ($field_names as $key => $value)
{
$thePostIdArray = explode(',', $key);
//print_r($thePostIdArray); // testing output
$selected = (in_array($row['user_level'], $thePostIdArray)) ? 'checked="checked"' : '';
$options .= '<input type="checkbox" name="'.$perm_type.'[]" '.$selected.' value="'.$key.'"> '.$value. ' ';
}
的$選擇的值應該輸出的「選中」在正確的複選框值,但事實並非如此。
您應該轉儲'$ row'在foreach之前,以確保它包含了你在找什麼。而'$ field_names'的值似乎沒有意義......實際上,從不在'$ row'之上,因爲它實際上並沒有在任何地方使用。是整段代碼還是你編輯了一些東西?另外..如果你應該使用'$ row'並且有好幾行......你需要爲每一行執行while($ row = mysql_fetch_array($ result)){....}'回到......(你應該使用msqli_或pdo bc它更安全,大聲笑...我現在不再更新它,對不起!) –
$行顯示數據庫中的user_level值。當user_level中只有1位數字時,此功能完美無缺。只有當這些逗號被添加時,這是擰緊。我認爲in_array()不能以某種方式工作。 –
您可以發佈$ row中返回的內容的示例嗎?在'$ fieldnames'中有'MEMBER'和'VISITOR'常量嗎?如果不是,那究竟發生了什麼?我不知道你想做什麼......有多少個複選框?二? –