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

时间:2015-10-10 01:38:17

标签: javascript jquery json yii2

我使用:

生成了我的模型数据
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);

1 个答案:

答案 0 :(得分:0)

最后,我使用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请求。

我不确定是否有办法用框架提供的功能来完成它,但这两个功能对我有用。