В ExtJS, как я могу перечислить несколько возвратов из данных JSON в наборе полей? - PullRequest
0 голосов
/ 25 апреля 2011

Хорошо, я наполовину новичок в ExtJS, и я создаю программу, у которой есть «входы», которые перечислены в сетке, и в моей БД эти входы могут быть связаны с «симптомами».

Я пытаюсь создать функцию, которая будет принимать идентификатор ввода, извлекать все симптомы из базы данных, связанные с этим симптомом, и перечислять их в наборе полей.

Работает нормально, когда я щелкаю на входе, который связан только с одним симптомом, но если вход связан с более чем одним симптомом, то ошибка говорит .. "недопустимый идентификатор свойства"

Это то, что я имею для своей функции.

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);

Я просто озадачен тем, как справиться с этим. Нужно ли создавать хранилище данных, как у меня для сеток? Или есть более простой способ сделать это?

Любая помощь приветствуется! заранее спасибо.

1 Ответ

0 голосов
/ 26 апреля 2011

Я думаю, вам нужно переосмыслить структуру вашего объекта ответа JSON. Вы можете отправить это в своем ответе JSON на ваш запрос. Если вы используете вызовы Ext.util.Ajax вместо формы, вам нужно будет декодировать эту строку ответа JSON, используя метод util Ext.util.JSON.decode (). Ознакомьтесь с 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'}
           }
         ]
  ]
} 
...