繁体   English   中英

Magento客户编辑-Ajax两次呼叫

[英]Magento Customer edit - Ajax called twice

作为该问题的后续,我还有另一个问题。

我的观点看起来像这样:

<span id="tickets">?</span>

<script type="text/javascript">
var url = '<?php echo Mage::helper("adminhtml")->getUrl("greenspan_tickets/index", array('customer_id' => $this->getRequest()->getParam('id'))); ?>';

function getTicketInfo(){
    new Ajax.Request(url, {
        method: 'get',
        onComplete: function(transport) {
            var json = transport.responseText.evalJSON();
            document.getElementById('tickets').innerHtml = json.ticket_count;
            alert(document.getElementById('tickets').innerHtml);
        }
    });
}
getTicketInfo();
</script>

使用正确的值“ 1”(JSON响应中的正确值)向用户发出两次警报。 但是,对于用户来说,#tickets的值仍然只是“?”。

我做错了什么?

原因可能是:在页面加载期间,页面本身当然也已加载/index.php/admin/customer/edit/id/1/key/7a13c7d7c2feecc16003c82bbf0f6201/ 如果我查看Firebug或类似内容,则会看到同一请求再次被触发,因此同一请求总共执行了两次: 双重装载 在这里看到完整的图像

你能解释出什么问题吗? 我在另一个正在运行的生产车间尝试过,这也导致页面两次加载。

加载文档时可能会出现问题,而是在加载事件中调用AJAX

var url = '<?php echo Mage::helper("adminhtml")->getUrl("greenspan_tickets/index", array('customer_id' => $this->getRequest()->getParam('id'))); ?>';

 function getTicketInfo() {
    new Ajax.Request(url, {
      method: 'get',
      onComplete: function(transport) {
          var json = transport.responseText.evalJSON();
          document.getElementById('tickets').innerHtml = json.ticket_count;
          alert(document.getElementById('tickets').innerHtml);
      }
    });
 }

 document.observe('dom:loaded', function() {
     getTicketInfo();
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM