次のコードがあり、行のテーブルにフォームを作成したいと思います。1 番目の for ループは 1 つのテーブルで、2 番目の for ループはサブテーブルになります。これらのサブテーブルは、JavaScript を使用して、プラス/マイナス ボタンを使用して表示および非表示にします。
<?php
class Application_Form_LineData extends Zend_Form
{
private $lineId;
private $dataId;
private $name;
public function init()
{
/* Form Elements & Other Definitions Here ... */
}
public $elementDecoration = array(
'ViewHelper',
array(array('data' => 'HtmlTag'), array('tag' => 'td'))
);
public $elementRowDecoration = array(
'ViewHelper',
array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
);
public $elementTableDecoration = array(
'ViewHelper',
array(array('data' => 'HtmlTag'), array('tag' => 'td')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
);
public function setLineId($lineId)
{
$this->lineId = $lineId;
}
public function setName($name)
{
$this->name = $name;
}
public function setDataId($dataId)
{
$this->dataId = $dataId;
}
public function startform($entries)
{
$this->setMethod('post') ->setAttrib('enctype', 'multipart/form-data');
//$this->setName('linedata');
//$this->setAction($_SERVER["REQUEST_URI"]);
//$this->setAction('line/submit');
$count = count($entries);
for($i=0;$i<$count;$i++){
$this->addElement('text', 'lineid_'.$entries[$i]['PGA_Id'], array(
'required' => true,
'value' => $entries[$i]['PGA_Id'],
'decorators' => $this->elementDecoration,
));
$this->addElement('text', 'name_'.$entries[$i]['PGA_Name'], array(
'required' => true,
'value' => $entries[$i]['PGA_Name'],
'readonly' =>true,
'decorators' => $this->elementDecoration
));
$this->addElement('checkbox', 'check'.$entries[$i]['PGA_Id'], array(
'decorators' => $this->elementDecoration,
));
$this->setElementDecorators(
array(
'ViewHelper',
'Label'
),
array(
'lineid_'.$entries[$i]['PGA_Id'],
'name_'.$entries[$i]['PGA_Name'],
'check'.$entries[$i]['PGA_Id']
)
);
// Data sets for each line
/*
$countData = count($entries[$i]['Data_Set']);
for($x=0;$x<$countData;$x++){
$this->addElement('hidden', 'dataid_'.$entries[$i]['Data_Set'][$x]['PGA_Id'], array(
'required' => true,
'decorators' => $this->elementDecoration,
'decorators' => $this->elementRowDecoration,
//'decorators' => $this->elementTableDecoration,
));
$this->addElement('text', 'name_'.$entries[$i]['Data_Set'][$x]['PGA_Name'], array(
'required' => true,
'value' => $entries[$i]['Data_Set'][$x]['PGA_Name'],
'readonly' =>true,
'decorators' => $this->elementDecoration
));
$this->addElement('hidden', 'path_'.$entries[$i]['Data_Set'][$x]['PGA_Path'], array(
'required' => true,
'value' => $entries[$i]['Data_Set'][$x]['PGA_Path'],
'readonly' =>true,
'decorators' => $this->elementDecoration
));
$this->addElement('checkbox', 'check'.$entries[$i]['Data_Set'][$x]['PGA_Id'], array(
'decorators' => $this->elementDecoration
));
}
*/
}
//show var here
//var_dump($this->lineId);
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Submit',
'decorators' => $this->elementDecoration
));
/*
$this->setElementDecorators(array(
'ViewHelper',
'Errors',
array(array('data' => 'HtmlTag'), array('tag' => 'td')),
//array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
));
*/
$this->setDecorators(array(
'FormElements',
array(array('data'=>'HtmlTag'),array('tag'=>'table')),
'Form'
));
//print_r($this);
//exit();
return $this;
}
//$this->setDecorators(array('FormElements', array('SimpleTable', ), 'Form'));
}