Guest User

Dynamic Form

a guest
Feb 1st, 2016
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.05 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. use yii\helpers\Html;
  5.  
  6. use yii\bootstrap\ActiveForm;
  7. //use yii\widgets\ActiveForm;
  8. //use kartik\widgets\ActiveForm;
  9. use wbraganca\dynamicform\DynamicFormWidget;
  10. use app\models\Kompetensi;
  11. use yii\web\JsExpression;
  12. use yii\helpers\ArrayHelper;
  13. use yii\jui\AutoComplete;
  14. use kartik\widgets\Select2;
  15.  
  16. $kompetensi = ArrayHelper::map(Kompetensi::find()->all(), 'id_kompetensi','judul');
  17.  
  18. $data = app\models\USERINFO::find()
  19. ->select([ 'name as label','ID as value'])
  20. ->asArray()
  21. ->all();
  22.  
  23. //print_r($data);
  24. /* @var $this yii\web\View */
  25.  
  26. /* @var $modelprogram app\modules\yii2extensions\models\Customer */
  27.  
  28. /* @var $modelspeserta app\modules\yii2extensions\models\Address */
  29.  
  30.  
  31. $js = '
  32.  
  33. jQuery(".dynamicform_wrapper").on("afterInsert", function(e, item) {
  34.  
  35. jQuery(".dynamicform_wrapper .panel-title-address").each(function(index) {
  36.  
  37. jQuery(this).html("Peserta: " + (index + 1))
  38.  
  39. });
  40.  
  41. });
  42.  
  43.  
  44. jQuery(".dynamicform_wrapper").on("afterDelete", function(e) {
  45.  
  46. jQuery(".dynamicform_wrapper .panel-title-address").each(function(index) {
  47.  
  48. jQuery(this).html("Peserta: " + (index + 1))
  49.  
  50. });
  51.  
  52. });
  53.  
  54. ';
  55.  
  56.  
  57. $this->registerJs($js);
  58.  
  59. ?>
  60.  
  61.  
  62. <div class="customer-form">
  63.  
  64.  
  65. <?php $form = ActiveForm::begin(['id' => 'dynamic-form']); ?>
  66.  
  67. <div class="row">
  68.  
  69. <div class="col-sm-6">
  70.  
  71. <?= $form->field($modelprogram, 'id_kompetensi')->dropDownList($kompetensi,['style'=>'width:500px']) ?>
  72.  
  73. </div>
  74.  
  75. <div class="col-sm-6">
  76.  
  77. <?= $form->field($modelprogram, 'j_peserta')->textInput(['maxlength' => true]) ?>
  78.  
  79. </div>
  80.  
  81. </div>
  82.  
  83.  
  84. <div class="padding-v-md">
  85.  
  86. <div class="line line-dashed"></div>
  87.  
  88. </div>
  89.  
  90. <?php DynamicFormWidget::begin([
  91.  
  92. 'widgetContainer' => 'dynamicform_wrapper', // required: only alphanumeric characters plus "_" [A-Za-z0-9_]
  93.  
  94. 'widgetBody' => '.container-items', // required: css class selector
  95.  
  96. 'widgetItem' => '.item', // required: css class
  97.  
  98. 'limit' => 4, // the maximum times, an element can be cloned (default 999)
  99.  
  100. 'min' => 0, // 0 or 1 (default 1)
  101. 'uniqueClass'=>'Class_id_karyawan',
  102. 'autocompleteDatasource'=>"<datasource for autocomplete in array>",
  103.  
  104. 'insertButton' => '.add-item', // css class
  105.  
  106. 'deleteButton' => '.remove-item', // css class
  107.  
  108. 'model' => $modelspeserta[0],
  109.  
  110. 'formId' => 'dynamic-form',
  111. //'autocompleteDatasource'=>$data,
  112. // 'uniqueClass'=>'id_karyawan',
  113. 'formFields' => [
  114.  
  115. 'id_karyawan',
  116.  
  117. 'hari',
  118.  
  119. // 'address_line2',
  120.  
  121. // 'city',
  122.  
  123. // 'state',
  124.  
  125. // 'postal_code',
  126.  
  127. ],
  128.  
  129. ]); ?>
  130.  
  131. <div class="panel panel-default">
  132.  
  133. <div class="panel-heading">
  134.  
  135. <i class="fa fa-envelope"></i> Peserta
  136.  
  137. <button type="button" class="pull-right add-item btn btn-success btn-xs"><i class="fa fa-plus"></i> Tambah Peserta</button>
  138.  
  139. <div class="clearfix"></div>
  140.  
  141. </div>
  142.  
  143. <div class="panel-body container-items"><!-- widgetContainer -->
  144.  
  145. <?php foreach ($modelspeserta as $index => $modelpeserta): ?>
  146.  
  147. <div class="item panel panel-default"><!-- widgetBody -->
  148.  
  149. <div class="panel-heading">
  150.  
  151. <span class="panel-title-address">Peserta: <?= ($index + 1) ?></span>
  152.  
  153. <button type="button" class="pull-right remove-item btn btn-danger btn-xs"><i class="fa fa-minus"></i></button>
  154.  
  155. <div class="clearfix"></div>
  156.  
  157. </div>
  158.  
  159. <div class="panel-body">
  160.  
  161. <?php
  162.  
  163. // necessary for update action.
  164.  
  165. if (!$modelpeserta->isNewRecord) {
  166.  
  167. echo Html::activeHiddenInput($modelpeserta, "[{$index}]id");
  168.  
  169. }
  170.  
  171. ?>
  172.  
  173.  
  174.  
  175. <?php
  176.  
  177. echo $form->field($modelpeserta, "[{$index}]id_karyawan")->->label(false)->textInput(['class' =>'Class_id_karyawan']) ?>
  178. ?>
  179.  
  180. <div class="row">
  181.  
  182. <div class="col-sm-6">
  183.  
  184. <?= $form->field($modelpeserta, "[{$index}]hari")->textInput(['maxlength' => true]) ?>
  185.  
  186. </div>
  187.  
  188.  
  189.  
  190. </div><!-- end:row -->
  191.  
  192.  
  193.  
  194.  
  195.  
  196. </div>
  197.  
  198. </div>
  199.  
  200. <?php endforeach; ?>
  201.  
  202. </div>
  203.  
  204. </div>
  205.  
  206. <?php DynamicFormWidget::end(); ?>
  207.  
  208.  
  209. <div class="form-group">
  210.  
  211. <?= Html::submitButton($modelpeserta->isNewRecord ? 'Create' : 'Update', ['class' => 'btn btn-primary']) ?>
  212.  
  213. </div>
  214.  
  215.  
  216. <?php ActiveForm::end(); ?>
  217.  
  218.  
  219. </div>
Add Comment
Please, Sign In to add comment