I am developing a page using moodle mform. In my form, i am using three repeat elements. In the form, if I try to add fields using this repeat elements new fields are added to all the three repeat elements. instead of adding fields for that specific one repeat element. can anyone help me in overcome this issue. I am attaching my code and image where you can find all details
Sample code:
if ($this->_instance){
print_object("count---".$DB->count_records('choice_options', array('choiceid'=>$this->_instance)));
$repeatno = $DB->count_records('choice_options', array('choiceid'=>$this->_instance));
$repeatno += 1;
} else {
$repeatno = 1;
}
$repeateloptionsfield = array();
$repeateloptionsfield['fieldname']['type'] = PARAM_RAW;
$this->repeat_elements($textarray, $repeatno,$repeateloptionsfield, 'option_repeats1', 'option_add_fields', 1, null, true);
$mform->addElement( 'header', 'header_constructor', "Define Constructor" );
$constructor=array();
$constructor[] = &$mform->createElement('text', 'constructoraccessspecifier', get_string('constructoracc',VPL));
$constructor[] = &$mform->createElement('text', 'constructorparametertype', get_string('constparam',VPL));
//print_object("this---".$this);
if ($this->_instance){
print_object($this->_instance);
print_object($DB->count_records('choice_options', array('choiceid'=>$this->_instance)));
$const_cnt = $DB->count_records('choice_options', array('choiceid'=>$this->_instance));
$const_cnt += 1;
} else {
$const_cnt = 1;
}
$consrepeateloptions = array();
$consrepeateloptions['constructoraccessspecifier']['type'] = PARAM_RAW;
$consrepeateloptions['constructorparametertype']['type'] = PARAM_RAW;
$mform->setType('optionid', PARAM_INT);
$this->repeat_elements($constructor, $const_cnt, $consrepeateloptions, 'option_repeats2', 'option_add_fields', 1, null, true);
$mform->addElement( 'header', 'header_method', "Define Methods" );
$method=array();
$method[] = &$mform->createElement('text', 'methodname',get_string('methods',VPL));
$method[] = &$mform->createElement('text', 'methodaccesspecifier',"Enter the modifiers");
$method[] = &$mform->createElement('select', 'methodmodifiers', 'Choose Method Accesspecifier',$options);
$method[] = &$mform->createElement('text', 'methodreturntype',"Enter method returntype");
$method[] = &$mform->createElement('text', 'throwsexcpetion', 'Enter the Exception');
$method[] = &$mform->createElement('text', 'methodannotations',"Enter method Annotations");
print_object("----------------------------------------------------------------------------------------------------");
print_object("count----".$this->_instance);
if ($this->_instance){
print_object("hello---".$this);
$cnt = $DB->count_records('choice_options', array('choiceid'=>$this->_instance));
$cnt += 1;
} else {
$cnt = 1;
}
$repeateloptions1 = array();
$repeateloptions1['methodname']['type'] = PARAM_RAW;
$repeateloptions1['methodaccesspecifier']['type'] = PARAM_RAW;
$repeateloptions1['methodreturntype']['type'] = PARAM_RAW;
$repeateloptions1['throwsexcpetion']['type'] = PARAM_RAW;
$repeateloptions1['methodannotations']['type'] = PARAM_RAW;
$mform->setType('optionid', PARAM_INT);
$this->repeat_elements($method, $cnt, $repeateloptions1, 'option_repeats3', 'option_add_fields', 1, null, true);