[英]How to load a Yii2 object into inputs using javascript
我使用以下方法生成了模型數據:
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請求的模型數據填充到表單中。
我不確定是否有辦法使用框架提供的功能,但是這兩個功能對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.