{"id":199552,"date":"2025-05-03T14:52:13","date_gmt":"2025-05-03T06:52:13","guid":{"rendered":"https:\/\/server.hk\/cnblog\/199552\/"},"modified":"2025-05-03T14:52:13","modified_gmt":"2025-05-03T06:52:13","slug":"ecshop%e5%b1%9e%e6%80%a7%e8%a1%a8attribute%e5%95%86%e5%93%81%e5%b1%9e%e6%80%a7%e8%a1%a8goods_attr%e8%b4%a7%e5%93%81%e8%a1%a8prduct-%e5%95%86%e5%93%81%e6%95%b0%e9%87%8f%e7%9a%84%e8%81%94%e7%b3%bb","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/199552\/","title":{"rendered":"ecshop\u5c5e\u6027\u8868attribute\u5546\u54c1\u5c5e\u6027\u8868goods_attr\u8d27\u54c1\u8868prduct \u5546\u54c1\u6570\u91cf\u7684\u8054\u7cfb"},"content":{"rendered":"<p>\u4e00\u4e2aecshop\u5546\u57ce\u7684\u5546\u54c1\u5c5e\u6027\u5b58\u653e\u5728\u5c5e\u6027\u8868\uff08attribute\uff09\u91cc \uff0c\u6bcf\u4e2a\u5546\u54c1\u5bf9\u5e94\u7684\u5c5e\u6027\u5728goods_attr\u91cc goods_attr\u4e0e\uff08attribute\uff09\u60f3\u5173\u8054\uff0c\u5546\u54c1\u8868\u91cc\u6709\u5546\u54c1\u6570\u91cf\u7684\u5b57\u6bb5goods_number<br \/>\n<br \/> \u4e3a\u4ec0\u4e48\u6709\u8fd9\u4e2a\u8d27\u54c1\u8868\u5462\uff1f<br \/>\n<br \/> &nbsp;\u56e0\u4e3a \u67d0\u4ef6\u5546\u54c1\u6709\u591a\u79cd\u5c5e\u6027\u7684\u65f6\u5019\uff0c\u90a3\u8fd9\u4e2a\u5546\u54c1\u5c31\u6210\u4e3a\u4e86\u8d27\u54c1\uff0c\u4e5f\u5c31\u662f\u8bf4\u4e0d\u540c\u5c5e\u6027\u7684\u76f8\u540c\u5546\u54c1\u5e94\u8be5\u4e5f\u5b58\u5728\u5dee\u5f02\uff0c\u6240\u4ee5\u5f53\u8bbe\u7f6e\u5546\u54c1\u5c5e\u6027\u7684attr_type=1\uff08\u8868\u793a\u5355\u9009\u5c5e\u6027\uff09\u7684\u65f6\u5019\uff0c<br \/>\n<br \/> \u5728 \u524d\u53f0include\/lib_comment.php \u51fd\u6570sort_goods_attr_id_array\u5c06 goods_attr_id \u7684\u5e8f\u5217\u6309\u7167 attr_id \u91cd\u65b0\u6392\u5e8f \u53ef\u4ee5\u627e\u5230 \u975e\u89c4\u683c\u5c5e\u6027\u7684id\u4f1a\u88ab\u6392\u9664\u8fd9\u53e5\u8bdd\uff0c\u5728\u8fde\u63a5\u8fd9\u4e2a\u51fd\u6570\u5199\u7684sql\u8bed\u53e5<br \/>\n<br \/> \/\u91cd\u65b0\u6392\u5e8f<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $sql = &#8220;SELECT a.attr_type, v.attr_value, v.goods_attr_id<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM &#8221; .$GLOBALS[&#8216;ecs&#8217;]-&gt;table(&#8216;attribute&#8217;). &#8221; AS a<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEFT JOIN &#8221; .$GLOBALS[&#8216;ecs&#8217;]-&gt;table(&#8216;goods_attr&#8217;). &#8221; AS v<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ON v.attr_id = a.attr_id<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND a.attr_type = 1<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE v.goods_attr_id &#8221; . db_create_in($goods_attr_id_array) . &#8221;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORDER BY a.attr_id $sort&#8221;;<br \/>\n<br \/> \u6211\u4e2a\u4eba\u89c9\u5f97attr_type=1\u8868\u793a\u89c4\u683c\u5c5e\u6027\uff0c\u7136\u540e\u5c31\u662f\u7531\u4e8e\u8fd9\u6837\u7684\u5904\u7406\uff0c\u5bfc\u81f4attr_type=0 attr_type=2\u7684\u5546\u54c1 \u4ed6\u4eec\u867d\u7136\u6709\u5546\u54c1\u6570\u91cf\uff0c\u4f46\u662f\u8d27\u54c1\u5e93\u5b58\u67e5\u4e0d\u51fa\u6765\u4ece\u800c\u5bfc\u81f4\u5230\u8d27\u901a\u77e5\u8fd9\u4e2a\u529f\u80fd\u51fa\u73b0\u5f02\u5e38<br \/>\n<br \/> \u9996\u5148\u6211\u4eec\u6765\u770b\u770b\u8fd9\u4e2a\u5230\u8d27\u901a\u77e5\u662f\u600e\u6837\u5904\u7406\u7684\uff1a<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; \u4ece\u6a21\u677fgoods.dwt\u91cc\u6211\u4eec\u627e\u5230<br \/>\n<br \/> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;function changePrice()<br \/>\n<br \/> {<br \/>\n<br \/> &nbsp; var attr = getSelectedAttributes(document.forms[&#8216;ECS_FORMBUY&#8217;]);<br \/>\n<br \/> &nbsp; var qty = document.forms[&#8216;ECS_FORMBUY&#8217;].elements[&#8216;number&#8217;].value;<br \/>\n<br \/> if(qty &lt;=0 ){<br \/>\n<br \/> &nbsp;document.forms[&#8216;ECS_FORMBUY&#8217;].elements[&#8216;number&#8217;].value = 1;<br \/>\n<br \/> &nbsp;qty = 1;<br \/>\n<br \/> }<br \/>\n<br \/> &nbsp; Ajax.call(&#8216;goods.php&#8217;, &#8216;act=price&amp;id=&#8217; + goodsId + &#8216;&amp;attr=&#8217; + attr + &#8216;&amp;number=&#8217; + qty, changePriceResponse, &#8216;GET&#8217;, &#8216;JSON&#8217;);<br \/>\n<br \/> }<\/p>\n<p> \/**<br \/>\n<br \/> &nbsp;* \u63a5\u6536\u8fd4\u56de\u7684\u4fe1\u606f<br \/>\n<br \/> &nbsp;*\/<br \/>\n<br \/> function changePriceResponse(res)<br \/>\n<br \/> {<br \/>\n<br \/> &nbsp; if (res.err_msg.length &gt; 0)<br \/>\n<br \/> &nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; alert(res.err_msg);<br \/>\n<br \/> &nbsp; }<br \/>\n<br \/> &nbsp; else<br \/>\n<br \/> &nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.forms[&#8216;ECS_FORMBUY&#8217;].elements[&#8216;number&#8217;].value = res.qty;<\/p>\n<p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementById(&#8216;ECS_GOODS_AMOUNT&#8217;)){<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_GOODS_AMOUNT&#8217;).innerHTML = res.result;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(document.getElementById(&#8216;ECS_GOODS_NUMBER&#8217;)){<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_GOODS_NUMBER&#8217;).innerHTML = res.goods_attr_number;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(res.goods_attr_number &gt; 0){<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ADD_TO_CART&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ONE_STEP_BUY&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_DAOHUO&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ADD_TO_CART&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ONE_STEP_BUY&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_DAOHUO&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> \u5c31\u662f\u8fd9\u91cc\uff0c\u901a\u8fc7\u53d1\u9001\u4e00\u4e2aajax\u8bf7\u6c42\u56de\u4f20\u5230goods.php\u91cc\uff0c\u5f97\u5230\u6700\u7ec8\u7684attr\uff0c\u7136\u540e\u5728goods.php\u91cc\u901a\u8fc7\uff1a<br \/>\n<br \/> \/\/&#8211; \u6539\u53d8\u5c5e\u6027\u3001\u6570\u91cf\u65f6\u91cd\u65b0\u8ba1\u7b97\u5546\u54c1\u4ef7\u683c<br \/>\n<br \/> \/*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; *\/<\/p>\n<p> if (!empty($_REQUEST[&#8216;act&#8217;]) &amp;&amp; $_REQUEST[&#8216;act&#8217;] == &#8216;price&#8217;)<br \/>\n<br \/> {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; include(&#8216;includes\/cls_json.php&#8217;);<\/p>\n<p> &nbsp;&nbsp;&nbsp; $json&nbsp;&nbsp; = new JSON;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $res&nbsp;&nbsp;&nbsp; = array(&#8216;err_msg&#8217; =&gt; &#8221;, &#8216;result&#8217; =&gt; &#8221;, &#8216;qty&#8217; =&gt; 1);<\/p>\n<p> &nbsp;&nbsp;&nbsp; $attr_id&nbsp;&nbsp;&nbsp; = isset($_REQUEST[&#8216;attr&#8217;])&amp;&amp;!empty($_REQUEST[&#8216;attr&#8217;]) ? explode(&#8216;,&#8217;, $_REQUEST[&#8216;attr&#8217;]) : array();<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $number&nbsp;&nbsp;&nbsp;&nbsp; = (isset($_REQUEST[&#8216;number&#8217;])) ? intval($_REQUEST[&#8216;number&#8217;]) : 1;<\/p>\n<p> &nbsp;&nbsp;&nbsp; if ($goods_id == 0)<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;err_msg&#8217;] = $_LANG[&#8216;err_change_attr&#8217;];<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;err_no&#8217;]&nbsp; = 1;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; else<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($number == 0)<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;qty&#8217;] = $number = 1;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;qty&#8217;] = $number;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $exclusive = $GLOBALS[&#8216;db&#8217;]-&gt;getOne(&#8220;select exclusive from &#8220;.$GLOBALS[&#8216;ecs&#8217;]-&gt;table(&#8216;goods&#8217;).&#8221; where goods_id = $goods_id&#8221;);<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $shop_price&nbsp; = get_final_price($goods_id, $number, true, $attr_id);<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;is_exclusive&#8217;]&nbsp; = is_exclusive($exclusive,$shop_price);<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;result&#8217;] = price_format($shop_price * $number);<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;result_jf&#8217;] = floor($shop_price * $number);<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $res[&#8216;goods_attr_number&#8217;] = get_product_attr_num($goods_id,$_REQUEST[&#8216;attr&#8217;]);<br \/>\n<br \/> \u56de\u4f20json\u6570\u636e\u5230\u6a21\u677f\uff0c\u901a\u8fc7if(document.getElementById(&#8216;ECS_GOODS_NUMBER&#8217;)){<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_GOODS_NUMBER&#8217;).innerHTML = res.goods_attr_number;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(res.goods_attr_number &gt; 0){<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ADD_TO_CART&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ONE_STEP_BUY&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_DAOHUO&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ADD_TO_CART&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_ONE_STEP_BUY&#8217;).style.display=&#8221;none&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(&#8216;ECS_DAOHUO&#8217;).style.display=&#8221;block&#8221;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\u5c31\u53ef\u4ee5\u5b9e\u73b0\u5230\u8d27\u901a\u77e5<br \/>\n<br \/> \u6211\u4eec\u5728\u6765\u770b\u770b\u8fd9\u4e2a goods_attr_number\u5728php\u9875\u9762\u662f\u600e\u6837\u5f97\u5230\u7684<br \/>\n<br \/> $res[&#8216;goods_attr_number&#8217;] = get_product_attr_num($goods_id,$_REQUEST[&#8216;attr&#8217;]);&#8212;-attr\u662fajax\u8c03\u6765\u7684\u6570\u636e\uff0c\u5f80\u4e0a\u627e\u4f1a\u770b\u5230\u5b83\u7684\u5904\u7406<br \/>\n<br \/> \u7ee7\u7eed\u627eget_product_attr_num<br \/>\n<br \/> get_product_attr_num \u83b7\u53d6\u76f8\u5173\u5c5e\u6027\u7684\u5e93\u5b58* @param int $goodid \u5546\u54c1id * @param string(array) $attrids \u5546\u54c1\u5c5e\u6027id\u7684\u6570\u7ec4\u6216\u8005\u9017\u53f7\u5206\u5f00\u7684\u5b57\u7b26\u4e32<br \/>\n<br \/> \u4ed4\u7ec6\u770b\u51fd\u6570\u7684\u6d41\u7a0b\uff0c\u6211\u4eec\u53d1\u73b0\u5982\u679c\u4e00\u4e2a\u5546\u54c1\u6ca1\u6709\u5c5e\u6027\uff0c\u90a3\u5b83\u7684attrid\u5c31\u662f\u7a7a\u7684\uff0c\u53c8\u4e00\u4e2a\u5546\u54c1\u6709\u591a\u4e2a\u5c5e\u6027\uff0c\u90a3\u5c31\u5bf9\u5e94\u591a\u4e2agoods_attr_id<br \/>\n<br \/> \u5728\u8fd9\u91cc\u7684\u8bdd&nbsp; goods_attr_number =\u5c31\u76f4\u63a5\u7b49\u4e8e\u5546\u54c1\u8868\u91ccgoods_number\u5bf9\u5e94\u7684\u6570\u91cf<br \/>\n<br \/> \u597d\u4e86\uff0c\u518d\u5f80\u4e0b\u770b\uff0c\u5982\u679c\u6709\u5c5e\u6027\uff0c\u90a3\u4e48\u5c31&nbsp; \u91cd\u65b0\u6392\u5e8f \u5c31\u662f\u6211\u4e0a\u9762\u63d0\u5230\u7684\u65b9\u6cd5<br \/>\n<br \/> \u95ee\u9898\u5c31\u5728\u8fd9\u91cc\u4e86\uff0c\u90a3\u6211\u4eec\u5728\u770b\u770b\u540e\u53f0\u5546\u54c1\u5c5e\u6027\u529f\u80fd<br \/>\n<br \/> \u5728\u7f16\u8f91\u5c5e\u6027\u5904\u6709\u8fd9\u6837\u4e09\u4e2a\u5355\u9009\uff0c\u5c5e\u6027\u662f\u5426\u53ef\u9009\uff1a\u552f\u4e00\u5c5e\u6027&nbsp; \u5355\u9009\u5c5e\u6027&nbsp; \u590d\u9009\u5c5e\u6027&nbsp;&nbsp;&nbsp; \u800c\u8fd9\u91cc\u5c31\u662fattr_type\u5bf9\u5e94 \u7684\u4e09\u79cd\u503c<br \/>\n<br \/> \u5728\u9875\u9762\u6709\u8fd9\u6837\u7684\u8bf4\u660e\uff1a<br \/>\n<br \/> \u9009\u62e9&#8221;\u5355\u9009\/\u590d\u9009\u5c5e\u6027&#8221;\u65f6\uff0c\u53ef\u4ee5\u5bf9\u5546\u54c1\u8be5\u5c5e\u6027\u8bbe\u7f6e\u591a\u4e2a\u503c\uff0c\u540c\u65f6\u8fd8\u80fd\u5bf9\u4e0d\u540c\u5c5e\u6027\u503c\u6307\u5b9a\u4e0d\u540c\u7684\u4ef7\u683c\u52a0\u4ef7\uff0c\u7528\u6237\u8d2d\u4e70\u5546\u54c1\u65f6\u9700\u8981\u9009\u5b9a\u5177\u4f53\u7684\u5c5e\u6027\u503c\u3002\u9009\u62e9&#8221;\u552f\u4e00\u5c5e\u6027&#8221;\u65f6\uff0c\u5546\u54c1\u7684\u8be5\u5c5e\u6027\u503c\u53ea\u80fd\u8bbe\u7f6e\u4e00\u4e2a\u503c\uff0c\u7528\u6237\u53ea\u80fd\u67e5\u770b\u8be5\u503c\u3002<br \/>\n<br \/> \u4f46\u662f \u51fa\u73b0\u95ee\u9898\u6765\u4e86\uff0c\u5982\u679c\u6ca1\u6709\u9009\u62e9\u5355\u5355\u9009\u5c5e\u6027 \u90a3\u4e48\u5728\u5546\u54c1\u5217\u8868\u91cc\u6216\u8005\u518d\u6dfb\u52a0\u5546\u54c1\u7684\u65f6\u5019\u8fd9\u4e2a\u5546\u54c1\u7684\u5c5e\u6027\u4e0d\u662f\u5355\u9009\u5c5e\u6027\u90a3\u4e48\u5c31\u4e0d\u4f1a\u51fa\u73b0\u8d27\u54c1\u7ba1\u7406\u8fd9\u4e2a\u529f\u80fd<br \/>\n<br \/> \u56e0\u4e3a\u5728\u8fd9\u4e2a\u529f\u80fd\u5904\u4e5f\u6709\u4e2a\u903b\u8f91<br \/>\n<br \/> \u5728\u540e\u53f0\u7684goods.php\u91cc\u627e\u5230\uff1a<br \/>\n<br \/> \/* \u83b7\u53d6\u5546\u54c1\u89c4\u683c\u5217\u8868 *\/<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $attribute = get_goods_specifications_list($goods_id);<br \/>\n<br \/> \u5728lib_goods.php\u91cc\u627e\u5230\u91cc\u8fd9\u4e2a\u51fd\u6570<br \/>\n<br \/> \/**<br \/>\n<br \/> &nbsp;* \u83b7\u53d6\u5546\u54c1\u7c7b\u578b\u4e2d\u5305\u542b\u89c4\u683c\u7684\u7c7b\u578b\u5217\u8868<br \/>\n<br \/> &nbsp;*<br \/>\n<br \/> &nbsp;* @access&nbsp; public<br \/>\n<br \/> &nbsp;* @return&nbsp; array<br \/>\n<br \/> &nbsp;*\/<br \/>\n<br \/> function get_goods_type_specifications()<br \/>\n<br \/> {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; \/\/ \u67e5\u8be2<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $sql = &#8220;SELECT DISTINCT cat_id<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM &#8221; .$GLOBALS[&#8216;ecs&#8217;]-&gt;table(&#8216;attribute&#8217;). &#8221;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE attr_type = 1&#8243;;<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; $row = $GLOBALS[&#8216;db&#8217;]-&gt;GetAll($sql);<\/p>\n<p> &nbsp;&nbsp;&nbsp; $return_arr = array();<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; if (!empty($row))<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach ($row as $value)<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $return_arr[$value[&#8216;cat_id&#8217;]] = $value[&#8216;cat_id&#8217;];<br \/>\n<br \/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; }<br \/>\n<br \/> &nbsp;&nbsp;&nbsp; return $return_arr;<br \/>\n<br \/> }<br \/>\n<br \/> \u4e0d\u96be\u53d1\u73b0\uff0c\u8fd9\u91cc\u4e5f\u53ea\u6709attr_type = 1 \u624d\u4f1a\u51fa\u73b0\u8d27\u54c1\u8fd9\u4e2a\u529f\u80fd<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u4e2aecshop\u5546\u57ce\u7684\u5546\u54c1\u5c5e\u6027\u5b58&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-199552","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=199552"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199552\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=199552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=199552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=199552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}