Hi All,
Now i working in Pengiriman-Produksi controller and create a new input. This new input could take reference from another two controller (contract and ticket-timbangan controller with action "List") using modal.
when i click button to show modal from ticket, it was ok. but when i click second button to show modal from contract, it also execute first script in first modal user called.
what is wrong here?
new input script (pengiriman-produksi/create)
<?php
use yii\bootstrap\Modal;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\models\PengirimanProduksi */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="pengiriman-produksi-form">
<?php $form = ActiveForm::begin(); ?>
<div class="row">
<div class="col-xs-12">
<?= $form->field($model, 'id')->textInput(['maxlength' => true, 'readonly' => true]) ?>
</div>
<div class="col-xs-6">
<?= $form->field($model, 'send_date')->widget(kartik\widgets\DatePicker::className(),
[
'type' => kartik\widgets\DatePicker::TYPE_COMPONENT_APPEND,
'value' => date('Y-m-d'),
'pluginOptions' => [
'autoclose' => true,
'format' => 'yyyy-mm-dd'
],
]) ?>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label"> </label>
<div id="BtnSearchTicket">
<?= Html::button('Search Ticket', [
//'value' => Url::to('/ticket-timbangan/list'),
'value' => Yii::$app->urlManager->createUrl('/ticket-timbangan/list'),
'class' => 'btn btn-primary showModal',
'id' => 'BtnModalTicketList',
'title' => 'List Ticket Timbangan',
// 'data-toggle'=> 'modal',
// 'data-target'=> '#modalTicketList',
// 'data-dismiss' => 'modal'
]) ?>
</div>
<div class="help-block"></div>
</div>
</div>
<div class="col-xs-12">
<?= $form->field($model, 'customer_id')->widget(kartik\select2\Select2::className(), [
'data' => ArrayHelper::map(\app\models\Customer::find()->all(), 'id', 'name'),
'options' => ['placeholder' => 'Select customer'],
'pluginOptions' => [
'allowClear' => true,
],
]
) ?>
<?= $form->field($model, 'vehicle_id')->widget(kartik\select2\Select2::className(), [
'data' => \yii\helpers\ArrayHelper::map(\app\models\Vehicle::find()->all(), 'id', 'id'),
'options' => ['placeholder' => 'Select vehicle'],
'pluginOptions' => [
'allowClear' => true,
],
]) ?>
</div>
<div class="col-xs-6">
<?= $form->field($model, 'contract_no')->textInput(['maxlength' => true]) ?>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label"> </label>
<div id="BtnSearchContract">
<?= Html::button('Search Contract', [
//'value' => Url::to('contract/list'),
'value' => Yii::$app->urlManager->createUrl('/contract/list'),
'class' => 'btn btn-primary showModal',
'id' => 'BtnModalContractList',
'title' => 'List Contract',
// 'data-toggle'=> 'modal',
// 'data-target'=> '#modalContractList',
// 'data-dismiss' => 'modal'
]) ?>
</div>
<div class="help-block"></div>
</div>
</div>
<div class="col-xs-6">
<?= $form->field($model, 'item_id')->widget(kartik\select2\Select2::className(), [
'data' => \yii\helpers\ArrayHelper::map(\app\models\ItemProduction::find()->all(), 'id', 'name'),
'options' => ['placeholder' => 'Select item'],
'pluginOptions' => [
'allowClear' => true
],
]) ?>
</div>
<div class="col-xs-6">
<?= $form->field($model, 'satuan_id')->widget(kartik\select2\Select2::className(), [
'data' => \yii\helpers\ArrayHelper::map(\app\models\Satuan::find()->all(), 'id', 'name'),
'options' => ['placeholder' => 'Select satuan'],
'pluginOptions' => [
'allowClear' => true,
],
]) ?>
</div>
<div class="col-xs-12">
<?= $form->field($model, 'bruto_tbg')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'bruto_a')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'bruto_b')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'bruto_c')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'readonly' => true,
'class' => 'form-control',
]
]) ?>
<?= $form->field($model, 'tara_tbg')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'tara_a')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'tara_b')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
<?= $form->field($model, 'tara_c')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'readonly' => true,
'class' => 'form-control',
]
]) ?>
</div>
<div class="col-xs-4">
<?= $form->field($model, 'netto')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'readonly' => true,
'class' => 'form-control',
]
]) ?>
</div>
<div class="col-xs-4">
<?= $form->field($model, 'price')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
]
]) ?>
</div>
<div class="col-xs-4">
<?= $form->field($model, 'total')->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'readonly' => true,
'class' => 'form-control',
]
]) ?>
</div>
<div class="col-xs-12">
<?= $form->field($model, 'sender')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'driver')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'remark')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'ticket_id')->textInput()->hiddenInput()->label(false) ?>
<?= $form->field($model, 'contract_id')->textInput()->hiddenInput()->label(false) ?>
</div>
</div>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php
Modal::begin([
'headerOptions' => ['id' => 'modalHeader'],
'id' => 'modal',
'size' => 'modal-lg',
'closeButton' => [
'id'=>'close-button',
'class'=>'close',
'data-dismiss' =>'modal',
],
'class' => 'style=width:auto',
'clientOptions' => [
'backdrop' => false, 'keyboard' => true
]
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>
</div>
<?php
$script = <<< JS
$('#pengirimanproduksi-bruto_tbg').change(function(){
calculateBruto_C();
});
$('#pengirimanproduksi-bruto_a').change(function(){
calculateBruto_C();
});
$('#pengirimanproduksi-bruto_b').change(function(){
calculateBruto_C();
});
function calculateBruto_C(){
var bruto_tbg = $('#pengirimanproduksi-bruto_tbg').val(); bruto_tbg = bruto_tbg == "" ? 0 : Number(bruto_tbg.split(",").join(""));
var bruto_a = $('#pengirimanproduksi-bruto_a').val(); bruto_a = bruto_a == "" ? 0 : Number(bruto_a.split(",").join(""));
var bruto_b = $('#pengirimanproduksi-bruto_b').val(); bruto_b = bruto_b == "" ? 0 : Number(bruto_b.split(",").join(""));
$('#pengirimanproduksi-bruto_c').val(roundUp(bruto_tbg + (bruto_tbg * bruto_a / 100) + bruto_<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />);
calculateNetto();
};
$('#pengirimanproduksi-tara_tbg').change(function(){
calculateTara_C();
});
$('#pengirimanproduksi-tara_a').change(function(){
calculateTara_C();
});
$('#pengirimanproduksi-tara_b').change(function(){
calculateTara_C();
});
function calculateTara_C(){
var tara_tbg = $('#pengirimanproduksi-tara_tbg').val(); tara_tbg = tara_tbg == "" ? 0 : Number(tara_tbg.split(",").join(""));
var tara_a = $('#pengirimanproduksi-tara_a').val(); tara_a = tara_a == "" ? 0 : Number(tara_a.split(",").join(""));
var tara_b = $('#pengirimanproduksi-tara_b').val(); tara_b = tara_b == "" ? 0 : Number(tara_b.split(",").join(""));
$('#pengirimanproduksi-tara_c').val(roundUp(tara_tbg + (tara_tbg * tara_a / 100) + tara_<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />);
calculateNetto();
};
function calculateNetto(){
var bruto_c = $('#pengirimanproduksi-bruto_c').val(); bruto_c = bruto_c == "" ? 0 : Number(bruto_c.split(",").join(""));
var tara_c = $('#pengirimanproduksi-tara_c').val(); tara_c = tara_c == "" ? 0 : Number(tara_c.split(",").join(""));
$('#pengirimanproduksi-netto').val(bruto_c-tara_c).change();
};
$('#pengirimanproduksi-netto').change(function(){
calculateTotalRp();
});
$('#pengirimanproduksi-price').change(function(){
calculateTotalRp();
});
function calculateTotalRp(){
var netto = $('#pengirimanproduksi-netto').val(); netto = netto == "" ? 0 : Number(netto.split(",").join(""));
var price = $('#pengirimanproduksi-price').val(); price = price == "" ? 0 : Number(price.split(",").join(""));
$('#pengirimanproduksi-total').val(netto * price);
};
function roundUp(nomor){
if(nomor != 0){
if(nomor % 10 == 0) return nomor;
else return ((10-(nomor % 10)) + nomor);
}
return 0;
};
$(document).on('click', '.showModal', function(){
if ($('#modal').hasClass('in')) {
$('#modal').find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeader').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
} else {
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeader').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
}
});
JS;
$this->registerJs($script);
?>
and this is action list in contract and ticket controller
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;
?>
<div class="ticket-timbangan-list">
<?php
$gridColumns = [
[
'class' => 'yii\grid\ActionColumn',
'template' => '{select}',
'buttons' => [
'select' => function($url, $model, $key){
return Html::button('Select', [
'title' => Yii::t('yii', 'Select'),
'aria-label' => Yii::t('yii', 'Select'),
'class' => 'btn btn-primary select-row',
'data-id' => $model->id,
]);
},
],
],
'id',
'timbang_date',
[ 'attribute' => 'agen_id', 'value' => 'agen.name' ],
[ 'attribute' => 'item_id', 'value' => 'item.name' ],
'vehicle_id',
'bruto',
'tara',
'netto',
'remark:ntext',
] ?>
<?php Pjax::begin(['id' => 'ticketlist']); ?>
<?=
GridView::widget([
'id' => 'kv-grid-ticketlist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>
<?php Pjax::end(); ?>
</div>
<?php
$script = <<< JS
$(document).on('click', '.select-row', function(){
// get id from custom button
var id = $(this).attr('data-id');
$.get('../ticket-timbangan/get-ticket', {id : id}, function(data){
var data = $.parseJSON(data);
$('#pengirimanproduksi-ticket_id').val(data.id);
$('#pengirimanproduksi-vehicle_id').val(data.vehicle_id).trigger('change');
$('#pengirimanproduksi-item_id').val(data.item_id).trigger('change');
$('#pengirimanproduksi-bruto_tbg').val(data.bruto);
$('#pengirimanproduksi-tara_tbg').val(data.tara);
$('#pengirimanproduksi-remark').val(data.remark);
});
$('#modal').modal('hide');
});
JS;
$this->registerJs($script);
?>
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;
?>
<div class="contract-list">
<?php
$gridColumns = [
[
'class' => 'yii\grid\ActionColumn',
'template' => '{select}',
'buttons' => [
'select' => function($url, $model, $key){
return Html::button('Select', [
'title' => Yii::t('yii', 'Select'),
'aria-label' => Yii::t('yii', 'Select'),
'class' => 'btn btn-primary select-row',
'data-id' => $model->id,
]);
},
],
],
'id',
'date',
'contract_no',
'sent:boolean',
['attribute' => 'item_id', 'value' => 'item.name'],
['attribute' => 'customer_id', 'value' => 'customer.name'],
[
'attribute' => 'price',
'format' => ['decimal', 2],
],
[
'attribute' => 'payment_price',
'format' => ['decimal', 2],
],
[
'attribute' => 'qty',
'format' => ['decimal', 2],
],
[
'attribute' => 'price_x',
'format' => ['decimal', 2],
]
] ?>
<?php Pjax::begin(['id' => 'contractlist']); ?>
<?=
GridView::widget([
'id' => 'kv-grid-contractlist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>
<?php Pjax::end(); ?>
</div>
<?php
$script = <<< JS
$(document).on('click', '.select-row', function(){
// get id from custom button
var id = $(this).attr('data-id');
$.get('../contract/get-contract', {id : id}, function(data){
var data = $.parseJSON(data);
$('#pengirimanproduksi-contract_id').val(data.id);
$('#pengirimanproduksi-contract_no').val(data.contract_no);
$('#pengirimanproduksi-item_id').val(data.item_id).trigger('change');
$('#pengirimanproduksi-customer_id').val(data.customer_id).trigger('change');
$('#pengirimanproduksi-price').val(data.payment_price);
});
$('#modal').modal('hide');
});
JS;
$this->registerJs($script);
?>
this was the image error happened because execute first modal.
Error Image