Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
44
rated 0 times [  50] [ 6]  / answers: 1 / hits: 45067  / 15 Years ago, wed, june 3, 2009, 12:00:00

I'm generating JSON response from PHP witch looks like this:



{ done:'1', options: [{ message:'Example message'},{message:'This is the 2nd example message'}]}


I want to grab these results using ExtJS. This is what I have so far:



Ext.Ajax.request({
loadMask: true,
url: 'myfile.php',
params: {id: 1}
});


What do I have to write next to get the json results like this:



var mymessages = jsonData.options;


And mymessages should contain Example message and This is the 2nd example message.



Thank you.


More From » php

 Answers
87

The straightforward approach:



Ext.Ajax.request({
loadMask: true,
url: 'myfile.php',
params: {id: 1},
success: function(resp) {
// resp is the XmlHttpRequest object
var options = Ext.decode(resp.responseText).options;

Ext.each(options, function(op) {
alert(op.message);
}
}
});


Or you could do it in a more Ext-ish way using Store:



var messages = new Ext.data.JsonStore({
url: 'myfile.php',
root: 'options',
fields: [
{name: 'text', mapping: 'message'}
],
listeners: {
load: messagesLoaded
}
});
messages.load({params: {id: 1}});

// and when loaded, you can take advantage of
// all the possibilities provided by Store
function messagesLoaded(messages) {
messages.each(function(msg){
alert(msg.get(text));
});
}


One more example to address the last comment:



var messages = [{title: 1},{title: 2},{title: 3}];

var titles = msg;
Ext.each(messages, function(msg){
titles.push(msg.title);
});
alert(titles.join(, ));


Although I would prefer doing it with a Array.map (which isn't provided by Ext):



var text = messages.map(function(msg){
return msg.title;
}).join(, );
alert(text);

[#99401] Friday, May 29, 2009, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
timothyc

Total Points: 233
Total Questions: 103
Total Answers: 103

Location: Jordan
Member since Thu, Aug 5, 2021
3 Years ago
timothyc questions
Sun, Jun 12, 22, 00:00, 2 Years ago
Sun, May 22, 22, 00:00, 2 Years ago
Fri, Jun 12, 20, 00:00, 4 Years ago
;