来自JSON数据的Yii2 ActiveForm十进制格式值

时间:2018-03-24 08:06:15

标签: model yii2 decimalformat active-form

我想通过parseJSON(数据)显示十进制格式。

ActiveFrom通过parseJSON(数据)从模型B获取数据。 (两种数据类型都是十进制(15,2)

这里ActiveFrom A

                <?= $form->field($model, 'budget_id')->widget(Select2::className(),
                [
                    'data' => ArrayHelper::map(Budget::find()->all(), 'id', 'description'),
                    'options' => ['placeholder' => 'Select ...', 'id'=>'code',],
                    'pluginOptions' => ['allowClear' => true,],
                    'disabled' => !$model->isNewRecord,
                ]); ?>

                <?= $form->field($model, 'budget')->textInput(['readonly' => true,'disabled' => !$model->isNewRecord,]) ?>

                <?= $form->field($model, 'actual')->textInput(['readonly' => true, 'type' => 'decimal','disabled' => !$model->isNewRecord,]) ?>

                <?= $form->field($model, 'available')->textInput(['readonly' => true,'disabled' => !$model->isNewRecord,]) ?>

budget_id下拉列表中选择数据,并通过parseJSON(数据)获取budgetactualavailable数据

JQuery parseJSON(data)

$script = <<< JS
$('#code').change(function(){
    var ioId = $(this).val();
    $.get('../budget/get-data',{ ioId : ioId }, function(data){
        var data = $.parseJSON(data);
        $('#budget_budget').val(data.budget);
        $('#budget_actual').val(data.actual);
        $('#budget_available').val(data.available);
    });
});

模型规则()

[['amount',  'actual', 'available','budget'], 'number'],

view

如何通过从parseJSON(数据)获取数据来显示十进制格式。

1 个答案:

答案 0 :(得分:0)

您可以使用yii2-money创建格式化输入,该输入将自动处理所有输入的货币格式,示例用法如下所示。

运行

$ php composer.phar require kartik-v/yii2-money "dev-master"

或添加

"kartik-v/yii2-money": "dev-master"

require文件的composer.json部分..

<?=
 $form->field ( $model , 'budget' )->widget ( MaskMoney::classname () , [
    'pluginOptions' => [
        'prefix' => '$ ' ,
        'suffix' => ' ¢' ,
        'allowNegative' => false
    ]
] );
?>

有关详细用法,请参阅HERE