嗨我有一個非常困難的時間應該是一個簡單的問題。從CodeIgniter 1.7開始,'$ this-> input-> post();'支持的數組,但我不能因爲某些原因將值存入數組中。我有一個存儲到一個數組7個複選框「服務[]」,你可以通過這個例子視圖中看到:出於某種原因,無法將數組中的複選框值存儲到數據庫!
<?php $servicesdata = array (
'name' => 'services[]',
'value' => 'in_home_care',
);
echo form_checkbox($servicesdata, set_checkbox('services[]', 'in_home_care', FALSE)); ?>
我很確信這是正確的方式,因爲形式也很好的驗證,如果出現錯誤。現在我開始在存儲值時遇到問題。我有7列需要有某種價值...在這一點上,我不在乎,但理想情況下它會是一個布爾值(二進制也可以)。以下是我在我的控制器,每個人都聲稱工作得這麼遠,但少了點:
$c = new Client($servicesdata);
$c->first_name = $this->input->post('first_name', TRUE);
$c->in_home_care = $this->input->post('services[in_home_care]');
你可以看到我穿上了完美的作品,並插入到一個VARCHAR類型,而數組贏得一個例子字符串不管進入數據庫。我覺得我在這裏錯過了一些東西 - 也就是陣列中的「價值」,但我不確定該從哪裏出發。任何幫助將不勝感激,因爲我可以工作的唯一方法犧牲了我的複選框驗證! :(
+1對老問題有趣的方法。 – NotMe 2010-07-13 00:36:21
非常好!基本上,我把你的頂線和添加'[]'服務結束。我打印出陣列,看起來很棒。現在,如果你不介意幫助他們,那麼如何將這7個值傳遞到他們各自的專欄?根據CI手冊,我的'post()'方法是正確的,但我沒有太多的運氣...... – mpoplin 2010-07-13 06:37:39
您可以通過使用set_value()來從您的複選框中獲得設定值(我認爲你想要的) )函數,即set_value('services []'),然後將其傳遞給字符串/模型/會話。這裏還有更多; http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields – 2010-07-13 12:19:21