2016-11-05 31 views
0

我想在數據庫中存儲多個複選框的值,當前只有最後一個複選框的值,即demo3被存儲。 其他值不在數據庫中。添加一組複選框,以便多個值可以存儲在數據庫中

$preprocedure=array(); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure','', 'Demo1', array('group' => 1), array('','demo1')); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure','', 'Demo2', array('group' => 1), array('','demo2')); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure','', 'Demo3', array('group' => 1), array('','demo3')); 
    $mform->addGroup($preprocedure, 'preprocedure', get_string('preprocedure', 'assignsubmission_metadata'),array('<br>'), false); 

回答

0

這是因爲您用於元素的名稱,該元素只允許一次設置一個值。如果你想存儲多個值,那麼你應該使用數組格式的名稱。

例一:

$preprocedure=array(); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo1]','', 'Demo1', array('group' => 1), array('',1)); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo2]','', 'Demo2', array('group' => 1), array('',1)); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo3]','', 'Demo3', array('group' => 1), array('',1)); 
    $mform->addGroup($preprocedure, 'preprocedure', get_string('preprocedure', 'assignsubmission_metadata'),array('<br>'), false); 

會給你:

object(stdClass)#181 (2) { 
    ["preprocedure"]=> 
     array(3) { 
     ["demo1"]=> 
      string(1) "1" 
     ["demo2"]=> 
      string(0) "" 
     ["demo3"]=> 
      string(1) "1" 
} 
["submitbutton"]=> 
    string(12) "Save changes" 

}

例二:

$preprocedure=array(); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[1]','', 'Demo1', array('group' => 1), array('','demo1')); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[2]','', 'Demo2', array('group' => 1), array('','demo2')); 
    $preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[3]','', 'Demo3', array('group' => 1), array('','demo3')); 
    $mform->addGroup($preprocedure, 'preprocedure', get_string('preprocedure', 'assignsubmission_metadata'),array('<br>'), false); 

會給你:

object(stdClass)#181 (2) { 
    ["preprocedure"]=> 
     array(3) { 
     [1]=> 
     string(5) "demo1" 
     [2]=> 
     string(0) "" 
     [3]=> 
     string(5) "demo3" 
    } 
["submitbutton"]=> 
    string(12) "Save changes" 

}

希望這有助於。

問候

桑迪普

+0

由於桑迪普,我想你的代碼,但現在沒有什麼是數據庫中去。 –

+0

每當我改變其他名稱preprocedure它不保存任何東西 –

+0

對不起,我從來沒有收到通知。你能解決嗎? –

相關問題