ECSHOP 安装完成后 查询无果的终极解决方案

声明:本文转载自原友商论坛(已被关闭),原作者的ID为 aizhixiu

 

我们公司的网站——爱之秀情趣用品商城www.aizhixiu.com)采用的是ecshop系统,上周六申请了快递100 API借口。今天上午审核通过,以邮箱的方式通知的本人。(审核时间比官方承诺的1——2个工作日慢了一天     O(∩_∩)O~)。具体案例地址:http://www.aizhixiu.com/user.php

从上午开始安装,完全安装的官方的教材,一步一步的安装。可是,总是不显示物流跟踪查询结果。提示内容如下:“正在查询物流信息,请稍后…”。反复检 查代码,上论坛找答案,到群里请教高人。可是,都没有有效的解决方案。求人无果,索性求自己。把官方插件代码研究一般后。开始使用排除法解决问题。

第一步,检查官方插件是否能用
本地测试 http://127.0.0.1/plugins/kuaidi100/express.php?com=yuantong&nu=6209098518
结果正确显示物流跟踪结果,截图如下:

 

看到了这个结果,我们可以排除了官方插件的问题。那么下一步就是,ecshop的模板问题了。如果,是系统默认板块,可直接使用。本问题主要解决非ecshop官方默认模板。

第二部,检查模板调用问题。user_transaction.dwt
官方给出方案是:
<!– {if $order.invoice_no}–>
<h5><span>物流跟踪</span></h5>
<div></div>
<table width=”100%” border=”0″ cellpadding=”5″ cellspacing=”1″ bgcolor=”#dddddd”>
<tr><td bgcolor=”#ffffff”><div id=”retData”></div></td></tr>
</table>
<!–{/if}–>
<script language=”javascript”>
document.getElementById(“retData”).innerHTML=”<center>正在查询物流信息,请稍后…</center>”;
var expressid = document.getElementById(“shipping_name”).innerHTML;
var expressno = document.getElementById(“invoice_no”).innerHTML;
Ajax.call(‘plugins/kuaidi100/express.php?com=’+ expressid+’&nu=’ + expressno,’showtest=showtest’, function(data){document.getElementById(“retData”).innerHTML=data;}, ‘GET’, ‘TEXT’);
</script>

仔细研究,这段代码页没有问题,问题出在Ajax.call(‘plugins/kuaidi100/express.php?com=’+ expressid+’&nu=’ + expressno,’showtest=showtest’, function(data){document.getElementById(“retData”).innerHTML=data;}, ‘GET’, ‘TEXT’);
这里。 Ajax.call没有把数据传输给<div id=”retData”></div>。了解ecshop的人都只,ecshop中的ajax对象是在js /transport.js文件中定义的。如果,user_transaction.dwt模板没有引用js/transport.js文件,Ajax自 然不会起作用。数据肯定不会传递给<div id=”retData”></div>。

所以,解决方案是,在user_transaction.dwt模板中引用js/transport.js文件:

{* 包含脚本文件 *}

{insert_scriptsfiles=’transport.js,common.js,user.js’}

到这里,问题解决。查询物流跟踪信息正常显示。

 

———————————————快递100注———————————————

另外一种方法是:

Ajax.call(‘plugins/kuaidi100/express.php?com=’+ expressid+’&nu=’ + expressno,’showtest=showtest’, function(data){document.getElementById(“retData”).innerHTML=data;}, ‘GET’, ‘TEXT’);
改成:
$.get(“plugins/kuaidi100/express.php”,{com:expressid,nu:expressno,showtest:’showtest’},

function(data)

                   {

                            $(“#retData”).html(data);

                   }

ECSHOP 安装完成后 查询无果的终极解决方案》上有 1 条评论

  1. Pingback 引用通告: EcShop插件一直在查询、参数不对、ajax未定义等问题 | 快递100博客

评论已关闭。