Php ExtJS从数据库加载表单项/字段
我在这里使用的是ExtJS3。我想用要提交的字段从数据库填充formpanel。基本上,我不知道我的表单将有哪些开关字段,我想从数据库中生成所有formpanel项。我可以生成一个JSON字符串,作为PHP文件的响应传递,其中包含字段和所有内容,但我需要知道如何在ExtJS中使用它 有什么帮助吗Php ExtJS从数据库加载表单项/字段,php,database,extjs,formpanel,Php,Database,Extjs,Formpanel,我在这里使用的是ExtJS3。我想用要提交的字段从数据库填充formpanel。基本上,我不知道我的表单将有哪些开关字段,我想从数据库中生成所有formpanel项。我可以生成一个JSON字符串,作为PHP文件的响应传递,其中包含字段和所有内容,但我需要知道如何在ExtJS中使用它 有什么帮助吗 谢谢。您必须以ExtJS理解的格式加载并发送字段。如果您不介意直接耦合到ExtJS格式,最简单的方法是在后端生成ExtJS模板样式。在这种情况下,您的php脚本将生成如下内容: new Ext.form
谢谢。您必须以ExtJS理解的格式加载并发送字段。如果您不介意直接耦合到ExtJS格式,最简单的方法是在后端生成ExtJS模板样式。在这种情况下,您的php脚本将生成如下内容:
new Ext.form.FormPanel({
width: 350,
defaultType: 'textfield',
items: [{
xtype: '<?php echo $field ?>',
value: '<?php echo $value ?>'
}]
});
new Ext.form.FormPanel({
宽度:350,
defaultType:'textfield',
项目:[{
xtype:“”,
值:“”
}]
});
显然,您可以重新安排它,以便“items”数组在循环中预先构建,并且您可以根据需要添加任意多的项
此外,根据您的设置方式,您还可以返回项目数组并动态地将它们添加到表单中,从而消除发送“new Ext.form..etc”部分的需要,并更好地解耦代码。就我个人而言,我会这么做
编辑:
在回复您的评论时,如果您以正确的ExtJS结构返回JSON数组,那么您所需要做的就是使用“panel.add(myItems);”[1]方法,可能还需要调用“panel.doLayout();”来强制它很好地重新渲染
查看“组件”[2]的详细信息,了解xtype的工作原理
[1]
[2] 我知道这是一篇老文章,但无论如何我都会碰它,因为它是在我的谷歌搜索中最先出现的 我很幸运地从Ext.Ajax.request返回了一个JSON字符串eval()(我知道,我知道,邪恶-但它可以工作,Ext.Decode无论如何都使用eval)-然后将eval的结果传递到Panel.add(Ext.ComponentManager.create(eval_result))
希望这对别人有帮助 我想用PHP返回如下内容:[{“fieldLabel”:“Documents”,“labelSeparator”:“boxLabel”:“name”:“},{“fieldLabel”:“Users”,“labelSeparator”:“boxLabel”:“name”:“}],并以某种方式将此配置项加载到已呈现的formPanel中。我能做这个吗?谢谢。我现在不在我的电脑上,但我会稍后再试。这似乎是有道理的,我认为它会起作用。非常感谢。