Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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
Php ExtJS从数据库加载表单项/字段_Php_Database_Extjs_Formpanel - Fatal编程技术网

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

我在这里使用的是ExtJS3。我想用要提交的字段从数据库填充formpanel。基本上,我不知道我的表单将有哪些开关字段,我想从数据库中生成所有formpanel项。我可以生成一个JSON字符串,作为PHP文件的响应传递,其中包含字段和所有内容,但我需要知道如何在ExtJS中使用它

有什么帮助吗


谢谢。

您必须以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中。我能做这个吗?谢谢。我现在不在我的电脑上,但我会稍后再试。这似乎是有道理的,我认为它会起作用。非常感谢。