2016-11-05 8 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

これは、一度に1つの値のみを設定できる要素に使用した名前のためです。複数の値を格納する場合は、配列形式の名前を使用する必要があります。

例1:

$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" 

}

例2:

$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

前払い以外の名前を変更すると、何も保存されません。 –

+0

申し訳ありませんが、私はこれについての通知はありません。それを解決できましたか? –

関連する問題