[Solved] Extension DynamicTabularForm

Permisi saya mau tanya tentang extension dynamictabularform.

Pada implementasi aplikasi saya, saya sudah berhasil menggunakan tabular formnya akan tetapi waktu saya klik tombol x untuk

menghapus row tabularnya dia ga mau kehapus, dari mana letak kesalahannya mastah ?.

pada controller action create




public function actionCreate()

	{

		$model=new Sppb2;

		$barangs = array(new Barang2);


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Sppb2']))

		{

			$model->attributes=$_POST['Sppb2'];


			if (isset($_POST['Barang2'])) {

				$barangs = array();

				foreach ($_POST['Barang2'] as $key => $value) {

					$birings = new Barang2('batchSave');

					$birings->attributes = $value;

					$barangs[ ] = $birings;

				}

			}


			$valid = $model->validate();

			foreach ($barangs as $birings) {

				$valid = $birings->validate() & $valid;

			}


			if ($valid) {

				$transaction = Yii::app()->db->beginTransaction();

				try {

					$model->save();

					$model->refresh();


					foreach ($barangs as $birings) {

						$birings->kode_brg = $model->id;

						$birings->save();

					}

					$transaction->commit();

				} 

				catch (Exception $e) {

					$transaction->rollback();

				}

				$this->redirect(array('view', 'id' => $model->id));

			}

		}


		$this->render('create',array(

			'model' => $model,

			'barangs' => $barangs

		));

	}



controller action update




public function actionUpdate($id)

	{

		$model=$this->loadModel($id);

		$barangs = $model->barangs;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Sppb2']))

		{

			$model->attributes=$_POST['Sppb2'];


			if (isset($_POST['Barang2'])) {

				$barangs = array();

				foreach ($_POST['Barang2'] as $key => $value) {

					if ($value['updateType'] == DynamicTabularForm::UPDATE_TYPE_CREATE)

						$barangs[$key] = new Barang2();

					else if ($value['updateType'] == DynamicTabularForm::UPDATE_TYPE_UPDATE)

						$barangs[$key] = Barang2::model()->findByPk($value['id']);

					else if ($value['updateType'] == DynamicTabularForm::UPDATE_TYPE_DELETE) {

						$delete = Barang2::model()->findByPk($value['id']);

						if ($delete->delete()) {

							unset($barangs[$key]);

							continue;

						}

					}

					$barangs[$key]->attributes = $value;

				}

			}


			$valid = $model->validate();

			foreach ($barangs as $birings) {

				$valid = $birings->validate() & $valid;

			}


			if ($valid) {

				$transaction = $model->getDbConnection()->beginTransaction();

				try {

					$model->save();

					$model->refresh();


					foreach ($barangs as $birings) {

						$birings->kode_brg = $model->id;

						$birings->save();

					}

					$transaction->commit();

				} 

				catch (Exception $e) {

					$transaction->rollback();

				}

				$this->redirect(array('view', 'id' => $model->id));

			}

		}


		$this->render('update',array(

			'model'=>$model,

			'barangs' => $barangs

		));

	}




pada _form.php




<?php

/* @var $this Sppb2Controller */

/* @var $model Sppb2 */

/* @var $form CActiveForm */

?>

</br>


<div class="form">

<?php  $form = $this->beginWidget('DynamicTabularForm',array(

	'id'=>'sppb2-form',

	'defaultRowView'=>'_barang_form',

	'enableAjaxValidation'=>false,

	)); ?>




	<p class="note">Fields with <span class="required">*</span> are required.</p>


	<?php echo $form->errorSummary($model); ?>




		<?php echo $form->labelEx($model,'kode_dept'); ?>

		<?php echo $form->textField($model,'kode_dept',array('size'=>30,'id'=>'kode_dept','readonly'=>'true','placeholder'=>'Klik Cari Untuk Mencari')); ?>

			<?php 

			//echo $form->hiddenField($model,'kode_dept');

			//echo CHtml::textField('kode_dept','',array('size'=>60));


			echo CHtml::ajaxbutton('Cari ',Yii::app()->createUrl('Sppb2/GetDepartemen'),

				array('update'=>'#kode_field'),array("id"=>'kode_dept'),array('class'=>'glyphicon glyphicon-search'));

			 ?>

			 <div id="kode_field" style="visibility:hidden;"></div>

			<?php echo $form->error($model,'kode_dept'); ?>





		<?php echo $form->labelEx($model,'permintaan_dept'); ?>

		<?php echo $form->textField($model,'permintaan_dept',array('size'=>30,'maxlength'=>30,'id'=>'nama_dept','readonly'=>'true',)); ?>

		<?php echo $form->error($model,'permintaan_dept'); ?>





		<?php echo $form->labelEx($model,'gudang_tujuan'); ?>

		<?php echo $form->textField($model,'gudang_tujuan',array('size'=>30,'id'=>'nama_gudang','readonly'=>'true','placeholder'=>'Klik Cari Untuk Mencari')); ?>

			<?php 

			//echo $form->hiddenField($model,'kode_dept');

			//echo CHtml::textField('kode_dept','',array('size'=>60));


			echo CHtml::ajaxbutton('Cari',Yii::app()->createUrl('Sppb2/Getgudang'),

				array('update'=>'#kode_field'),array("id"=>'gudang_tujuan'));

			 ?>

			 <div id="kode_field" style="visibility:hidden;"></div>

			<?php echo $form->error($model,'gudang_tujuan'); ?>





		<?php echo $form->labelEx($model,'no_sppb'); ?>

		<?php echo $form->textField($model,'no_sppb',array(

			'size'=>5,'value'=>(($model->isNewRecord)? $model->generateCode() : $model->no_sppb),'readonly'=>'true')); ?>

			<?php echo $form->error($model,'no_sppb'); ?>





		<?php echo $form->labelEx($model,'tgl_sppb'); ?>

		<?php 

			$properties = array(

				'model'=>$model,

				'attribute'=>'tgl_sppb',

				'options'=>array(

					'showAnim'=>'drop',

					'dateFormat'=>'yy-mm-dd',

					'changeMonth'=>true,

					'changeYear'=>true,

					'showButtonPanel'=>true,

					),

				'htmlOptions'=>array(

					'style'=>'height:20px;width:80px',

					),

				);

			$this->widget('zii.widgets.jui.CjuiDatePicker',$properties);

			?>

			<?php echo $form->error($model,'tgl_sppb'); ?>


		<?php echo $form->labelEx($model,'year'); ?>

		<?php echo $form->textField($model,'year',array(

		'size'=>5,'value'=>(($model->isNewRecord)? $model->getYear() : $model->year),'readonly'=>'true')); ?>

		<?php echo $form->error($model,'year'); ?>





	</br>


	<div id="tabular-content">

		<?php echo $form->rowForm($barangs) ?>

	</div>

			<div class="form-actions">

			<?php 

			

			$this->widget('bootstrap.widgets.TbButton',array(

				'buttonType'=>'submit',

				'type'=> $model->isNewRecord ? 'primary' : 'primary',

				'label'=>$model->isNewRecord ? 'Create' : 'Save',

				'block'=>true,

				));

			


			$this->widget('bootstrap.widget.TbButton',array(

				'buttonType'=>'reset',

				'type'=>'danger',


				'block'=>true,

				'label'=>'Reset',

				

				));

			//echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>

		</div>

	

<?php $this->endWidget(); ?>

</div><!-- form -->



pada _barang_form.php sebagai tabular formnya




<?php $row_id = "birings-" . $key ?>

<div class='row clearfix' id="<?php echo $row_id ?>">

    <?php

    echo $form->hiddenField($model, "[$key]id");

    echo $form->updateTypeField($model, $key, "updateType", array('key' => $key));

    ?>

          <div class="span-5">

                 <?php echo $form->labelEx($model,'Kode Barang'); ?>

                  <?php

                  echo $form->textField($model, "[$key]kd_brg",array('style'=>'width:60px'));

                  echo $form->error($model, "[$key]kd_brg");

                  ?>

          </div>

           

          <div class="span-5">

                 <?php echo $form->labelEx($model,'Nama Barang'); ?>

                 <?php

                  echo $form->textField($model, "[$key]nm_barang");

                  echo $form->error($model, "[$key]nm_barang");

                  ?>

          </div>

           

          <div class="span-5">

              <?php echo $form->labelEx($model,'Satuan'); ?>

                  <?php

                  echo $form->textField($model, "[$key]satuan",array('style'=>'width:60px'));

                  echo $form->error($model, "[$key]satuan");

                  ?>

          </div>


          <div class="span-5">

                <?php echo $form->labelEx($model,'Qty Request'); ?>

                  <?php

                  echo $form->textField($model, "[$key]qty_request",array('style'=>'width:60px'));

                  echo $form->error($model, "[$key]qty_request");

                  ?>

          </div>


          <div class="span-5">

                <?php echo $form->labelEx($model,'Qty Realisasi'); ?>

                 <?php

                  echo $form->textField($model, "[$key]qty_realisasi",array('style'=>'width:60px'));

                  echo $form->error($model, "[$key]qty_realisasi");

                  ?>

          </div>


          <div class="span-5">

                  <?php echo $form->labelEx($model,'Keterangan'); ?>

                 <?php

                  echo $form->textArea($model, "[$key]keterangan",array('rows'=>5, 'cols'=>50,'class'=>'span9'));

                  echo $form->error($model, "[$key]keterangan");

                  ?>

          </div>

              

          <div class="span-1">

                  <?php echo $form->deleteRowButton($row_id, $key); ?>

                    </br>

                  </br>

          </div>


</div>



Tolong Di cek mastah apakah ada kesalahan??

Terima Kasih

boleh minta contoh programnya ga om? ane mw buat tabular add row dan delete row tabel… tapi blm nemu" kuncinya