manage分类category切换category所触发的AJAX代码

 

在Magento 后台往往会想对某些页面写入JavaScript的需求,为了改变页面的内容,大多数的页面都在后端作处理就好,而有些页面像是Category>manage category裡的category做切换的时候是透过AJAX机制做传递,这时候就有写JavaScript的需求了。
 
 
1.如下图的红色框框,在切换category的时候执行JavaScript的程式码

 

2. 如下先找到这个档桉app\design\adminhtml\default\default\template\catalog\category\edit.phtml,再找到function updateContent() 裡 的 Onsuccess这一个程式区块,因为每次category再切换的时候是透过AJAX机制做传递,都会去跑这个区块,所以可在这个区块裡面撰写程式码。

function updateContent(url, params, refreshTree) {
        if (!params) {
            params = {};
        }
        if (!params.form_key) {
            params.form_key = FORM_KEY;
        }

        toolbarToggle.stop();

       /*if(params.node_name)
       {
           var currentNode = tree.getNodeById(tree.currentNodeId);
           currentNode.setText(params.node_name);
       }*/

        var categoryContainer = $('category-edit-container');
        var messagesContainer = $('messages');
        var thisObj = this;
        new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
            parameters:  params,
            evalScripts: true,
            onComplete: function () {
                /**
                 * This func depends on variables, that came in response, and were eval'ed in onSuccess() callback.
                 * Since prototype's Element.update() evals javascripts in 10 msec, we should exec our func after it.
                 */
                setTimeout(function() {
                    try {
                        if (refreshTree) {
                            thisObj.refreshTreeArea();
                        }
                        toolbarToggle.start();
                    } catch (e) {
                        alert(e.message);
                    };
                }, 25);
            },
            onSuccess: function(transport) {
                try {
                    if (transport.responseText.isJSON()) {
                        var response = transport.responseText.evalJSON();
                        var needUpdate = true;
                        if (response.error) {
                            alert(response.message);
                            needUpdate = false;
                        }
                        if(response.ajaxExpired && response.ajaxRedirect) {
                            setLocation(response.ajaxRedirect);
                            needUpdate = false;
                        }
                        if (needUpdate){
                            if (response.content){
                                $(categoryContainer).update(response.content);
                            }
                            if (response.messages){
                                $(messagesContainer).update(response.messages);
                            }
                        }
                    } else {
                        $(categoryContainer).update(transport.responseText);
                    }
                    onLandingPageSectionChanged();
                }
                catch (e) {
                    $(categoryContainer).update(transport.responseText);
                }
            }
        });
    }

 

笔者的范例只限于manage category,如果其他页面的tab做切换也是用AJAX的机制,那要找到对应的那个onSuccess区块。


上一篇:在win10使用WampServer部署magento 下一篇:没有了
  • 版权声明:内容来自互联网不代表本站观点,2018-05-20发表于 magento教程栏目。
  • 转载请注明: manage分类category切换category所触发的AJAX代码| magento教程 +复制链接