[英]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.