目标:订单详情页可以根据订单查询当前物流信息。
效果图:
思路:点击后异步请求快递查询api,接受返回信息,拼接。
代码:
admin下:order_info.htm
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//一:顶部插入jquery,在{if $user}{/if}后添加 <div id="topbara" style="display: none"> <table width="100%" border="0" id="aaa"> </table> </div> {if $ship} <input type="hidden" id="apiname" value="{$apiname}"> {/if} //二:80行左右 查找{$order.order_sn} 替换这一个td <td width="34%">{$order.order_sn} {if $ship}[<span id="postnu" style="cursor:pointer" value="{$postnu}">查看物流</span>]{else}[<span >暂无物流信息</span>]{/if}{if $order.extension_code eq "group_buy"}<a href="group_buy.php?act=edit&id={$order.extension_id}">{$lang.group_buy}</a>{elseif $order.extension_code eq "exchange_goods"}<a href="exchange_goods.php?act=edit&id={$order.extension_id}">{$lang.exchange_goods}</a>{/if}</td> //三:插入底部文件上面插入 Ajax异步接受和拼接数据 {literal} <script> $("#postnu").click(function () { var postnu=$("#postnu").attr('value'); var apiname=$("#apiname").attr('value'); Ajax.call('order.php?act=show_wuliu','postnu='+postnu+'&apiname='+apiname ,showwuliu,'GET','TEXT'); }); function showwuliu(res) { var data=JSON.parse(res); var html="<caption><strong>物流详情 <span style='color:orangered' onclick='myclose()'><i>点击关闭</i></span></strong></caption>"; if (data["nu"]==''&&data["ischeck"]==0) { html+="<caption><strong>"+data["message"]+"</strong></caption>"; }else{ for (var i = 0;i<data["data"].length;i++){ html+="<tr><td> 时间 :</td><td>"+data["data"][i]["time"]+"</td></tr><tr><td> 物流状态: </td><td>"+data["data"][i]["context"]+"</td></tr>}"; } } html +=" "; $("#aaa").empty(); $("#aaa").append(html); $("#topbara").show(); } function myclose() { document.getElementById( "topbara" ).style="display:none"; } </script> {/literal}
admin下:order.php
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/*在act==info里面插入(判断是否打印订单上面即可)查询语句根据自己数据库调整*/ $select_sql = 'SELECT shipping_status,invoice_no,sp_api_name FROM '.$ecs->table('order_info').' order_info INNER JOIN '.$ecs->table('shipping').' shipping ON order_info.shipping_id=shipping.shipping_id where order_id='.$order_id; $order_val=$db->getRow($select_sql); $smarty->assign('ship',$order_val["shipping_status"]); $smarty->assign('postnu',$order_val["invoice_no"]); $smarty->assign('apiname',$order_val["sp_api_name"]); /*act==info下添加(该获取方式不推荐,次数多会被封账号,建议购买)*/ elseif ($_REQUEST['act']== 'show_wuliu'){ $apiname=$_GET['apiname']; $postnu=$_GET['postnu']; $url = "http://m.kuaidi100.com/query?type=" . $apiname . "&postid=" . $postnu . "&id=1&valicode=&temp=0.90644506498" . $temp; $aaa=file_get_contents($url); die($aaa); }
部分代码根据自己的结构进行调整即可。
tag:ecshop二次开发 查询物流信息 订单号查询 复制可用 快递信息