如何使用javascript将Yii2对象加载到输入中

How to load a Yii2 object into inputs using javascript

本文关键字:加载 输入 对象 Yii2 何使用 javascript      更新时间:2023-09-26

我已经生成了模型数据,使用:

public function actionGetDatosProducto()
{
    'Yii::$app->response->format = 'yii'web'Response::FORMAT_JSON;
    $id = $_POST['id'];
    if (($model = Producto::findOne($id)) !== null) {
        return $model;
    } else {
        echo '';
    }
}

这是JSON对象及其属性:

Object {Idproducto: 65, producto: "Meoe", fraccion: "1111", Idcte: 1}

是否有一行我可以使用,因此JSON响应的四个值通过javascript自动分配给视图上的模型输入,如:

$.post(url, {
    id: idModel,
}, function (data) {
    //data is the object with attributes
    $(form).load(data);
}, 'json');

为了避免手工逐个输入赋值:

$('#producto-idproducto').val(data.Idproducto);
$('#producto-producto').val(data.producto);
$('#producto-fraccion').val(data.fraccion);

最后,我使用Javascript对象中的两个函数来完成任务,使用以下代码:

toDash: function (modelName) {
    modelName = modelName.substr(0, 1).toLowerCase() + modelName.substr(1);
    return modelName.replace(/([A-Z])/g, function($1){return "-"+$1.toLowerCase();});
},
fillAttributesToFields: function (modelName, data) {
    var modelNameDash = this.toDash(modelName);
    for (attribute in data) {
        $('#'+modelNameDash+'-'+attribute.toLowerCase()).val(data[attribute]);
    }
}

该代码自动将模型数据填充到表单中,来自AJAX请求。

我不确定是否有一种方法可以用框架提供的函数来完成,但这两个函数对我来说是有效的。