2016-11-05 1 views
0

Я хочу сохранить несколько значений флажков в базе данных, в настоящее время сохраняется только последнее значение флажка i.e. 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" 

}

Надеется, что это помогает.

С уважением

Sandeep

+0

Благодаря Sandeep, я попробовал ваш код, но теперь ничего не происходит, в базе данных. –

+0

Всякий раз, когда я меняю имя, кроме препроцедуры, он ничего не сохраняет –

+0

Извините, я так и не получил уведомление. Могли ли вы это разрешить? –

Смежные вопросы