1

I need to looping through the Json data store and gather all the values. Finally, it should show the total amount of all price in alert window. I do not know how to looping through the Json data stoe, and I am interested if there's a quicker or easier way to do this. My idea is:

var myStore = new Ext.data.Store({
    id: 'ID_Store',
    proxy: new Ext.data.HttpProxy({
        url: 'get.php',
        method: 'POST'
    }),
    baseParams: {
        task: "LIST"
    },
    reader: new Ext.data.JsonReader({
        root: 'results',
        totalProperty: 'total',
        id: 'id'
    }, [{
        name: 'IDbook',
        type: 'int',
        mapping: 'id_book'
    }, {
        name: 'price',
        type: 'int',
        mapping: 'price'
    }])
});

var sum = 0;

myStore.load();
myStore.on('load', function () {
    for (var i = 0; i < myStore.getTotalCount(); i++) {
        sum = sum + myStore.price[i];
    }
});

alert("total sum is:", sum);

JSON is:

{success:true}{total:5,results:[{"id_book":"1","price":"10},{"id_book":"2","price":"15"},{"id_book":"3","price":"5"},{"id_book":"4","price":"7"},{"id_book":"5","price":"30"}]}

2 Answers 2

7

Can't get much simpler then this:

var total = 0;
myStore.each(function(r) {
   total += r.get('price');
})
Sign up to request clarification or add additional context in comments.

1 Comment

Was about to post the same answer. +1
1

Think there a mistake in json first tag price is "price":"10 instead of

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.