0

好的,我是 ExtJS 的半新手,我正在构建一个程序,该程序具有在网格中列出的“输入”,并且在我的数据库中,这些输入可以链接到“症状”。

我正在尝试创建一个函数,该函数将接受输入的 id 并从数据库中获取与该症状链接的所有症状,并将它们列出在字段集中。

当我单击仅链接到一种症状的输入时,它工作正常,但如果输入链接到多个症状,则错误显示..“无效的属性 id”

这就是我的功能。

function listSymptoms(inputID){
    Ext.Ajax.request({
        url: "../../inc/project4.php?list=symptoms",
        reader: new (Ext.data.JsonReader)({
            root: "symptoms",
            inputid: "id"
        }),
        params: {
            inputid: inputID
        },
        method: "POST",
        success: function (f, a){
            var jsonData = Ext.util.JSON.decode(f.responseText);
            symptomsFieldSet.body.update(jsonData.data.name);
        },
        failure: function (f,a){
            Ext.Msg.alert('There was a problem opening your message.');
        }
    });
}

当用户单击网格内保存的输入之一时,我有传入的函数的 inputID。

我相信我的问题与这条线有关..

  symptomsFieldSet.body.update(jsonData.data.name);

我只是不知道如何处理这个问题。我是否需要像网格一样创建数据存储?或者有没有更简单的方法来做到这一点?

任何帮助表示赞赏!提前致谢。

4

1 回答 1

0

我认为您需要重新考虑 JSON 响应对象的结构。您可以在 JSON 响应中将其发送到您的请求。如果您在表单中使用 Ext.util.Ajax 调用,则需要使用实用方法 Ext.util.JSON.decode() 解码此 JSON 响应字符串。查看API 文档

{
  success: true,
  msg: {text: 'this can be used for error message handling' },
  data : [
          {id:1,
           chiefComplaint: 'head hurts',
           symptoms: [
                 {symptomID: '740.1', text: 'Headache'},
                 {symptomID: '12352135'. text: 'and so on'}
           }
         ]
  ]
} 
于 2011-04-26T01:07:29.840 回答