1
我試圖讓我的用戶可以選擇加載更多語言的文章。 我試圖表明,用戶沒有選擇可用語言的列表,並有選擇已經選擇語言的頂部爲用戶從他們的選項中刪除。使用Codeigniter的動態用戶選項
這裏是我到目前爲止有:
class Options_model extends CI_Model{
protected $options = array(
'en' => 'English',
'it' => 'Italiano',
'fr' => 'Français',
'de' => 'Deutsch',
'es' => 'Español',
'no' => 'Norsk',
'ru' => 'Русский язык',
'ar' =>'العربية',
'zu' => '中文',
);
public function my_lang($user_id) {
$sql =
"SELECT lang_id
FROM languages
WHERE user_id = :user_id";
$stmt = $this->db->conn_id->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
return $result = $stmt-> fetch();
}
public function languages($result) {
return array_diff_key($this->options, $result);
}
}
,並在我的視圖文件(用於測試,我就會把一些這方面的控制,當我得到它的運行和鏈接扔刪除語言並刪除我的數據庫中的表)。
$mylang = $this->Options_model->my_lang($user_id);
print_r($mylang);
foreach ($mylang as $value) {
echo "Value: $value<br />\n";
}
$options = $this->Options_model->languages($mylang);
echo form_dropdown('languages', $options);
和我的數據庫結構如下:
| id | user_id | lang_id |
|------------------------|
| 1 | 12 | en |
|————————————————————————|
我得到的,當我嘗試返回我的$ myLang變量是「數組」。我不能讓我的array_diff_key函數工作,並且print_r看起來並不像我想象的那樣。我只想讓自己回到我的圖形設計舒適區,並將此後端頭痛甩掉。有沒有更簡單的方法來做到這一點?或者我應該如何編碼用戶選項而不看起來像個白癡?
你能後,當你的print_r你會得到什麼? –
陣列([LANG_ID] =>烯[0] =>烯)。我的foreach也迴應了兩次,但這很容易解釋。我想它呼應的英語,這可能嗎? –