ExtJS String to Combobox

时间:2011-07-20 20:00:20

标签: php extjs combobox

我有一个php文件,它返回一个像这样的字符串

["item1","item2","item3","item4"]

我需要用ExtJS创建一个组合框。选项必须是4个选项之类的项目。如果php链接是items.php,我该怎么做呢?为了清楚说明,我需要combobox displayFieldvalueField具有相同的值,例如item1将是displayFieldvalueField。提前谢谢!

P.S。字符串不是Json格式化的,我猜它是数组存储。

1 个答案:

答案 0 :(得分:4)

首先,我认为你必须修改你的php脚本,以便它至少返回字符串[["item1"],["item2"],["item3"],["item4"]]。否则,您将不得不创建自己的extjs阅读器或覆盖Ext.data.reader.Array.read方法。

其次,您的商店应如下所示:

var store = Ext.create('Ext.data.Store', {
  fields: ['item'],
  proxy: {
    type: 'ajax',
    url: '/items.php',
    reader: {
      type: 'array'
    }
  }
}

第三,您的组合配置应如下所示:

Ext.create('Ext.form.ComboBox', {
  store: store,
  displayField: 'item',
  valueField: 'item'
});

如果您决定使用原始的PHP脚本,您可以查看how to define your own reader(讨论过json reader,但您可以弄清楚如何在数组读取器中实现该代码)