Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript将Yii2对象加载到输入中_Javascript_Jquery_Json_Yii2 - Fatal编程技术网

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

如何使用javascript将Yii2对象加载到输入中,javascript,jquery,json,yii2,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 {

我已使用以下方法生成模型数据:

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请求的模型数据填充到表单中


我不确定是否有办法使用框架提供的函数来完成这项任务,但这两个函数对我来说很有效。

最后,我使用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请求的模型数据填充到表单中

我不确定是否有一种方法可以利用框架提供的功能来实现这一点,但这两个功能对我来说是有效的