如何使用javascript将Yii2对象加载到输入中
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请求。
我不确定是否有一种方法可以用框架提供的函数来完成,但这两个函数对我来说是有效的。
相关文章:
- Ajax文件加载和<输入>文件加载
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- 在Chrome中重新加载页面后清除表单输入值
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 如何使用输入数据加载新的extjs图表
- 输入上的键控事件在页面加载时触发
- Selectize.js:如何将数据库中已经选择的标签预加载到输入字段(Meteor&MongoDB/JSON)
- 如何在页面加载时直接使用Javascript在输入字段中填写数据
- HTML5范围输入重新加载
- 将从服务器获取的数据加载到输入文本表单中
- 验证嵌套在ng中的输入元素repeat也用于页面加载,而不仅仅用于更改
- 使用回调函数时,加载会覆盖输入文本框
- 在Meteor中加载带有采集数据的选择输入字段
- 无法为动态加载的输入框加载日期选择器和小部件
- 当在ng重复中使用ng模型时,在页面加载时角度输入不为空
- 单击时动态加载输入字段
- 加载输入文件字段
- 使用本地存储保存和加载输入值
- Javascript保存、擦除和重新加载输入值
- 预加载输入类型图像