基于ecshop的移动端 etouch实现动态获取分类商品列表
修改文件 category.php
关键两个地方需要修改
<code><span>if</span> (<span>$_GET</span>[<span>'act'</span>] == <span>'asynclist'</span>) { <span>$sayList</span> = array(); <span>if</span> (is_array(<span>$goodslist</span>)) { foreach (<span>$goodslist</span> as <span>$vo</span>) { <span>$shop_price</span> = empty(<span>$vo</span>[<span>'promote_price'</span>]) ? <span>$vo</span>[<span>'shop_price'</span>]:<span>$vo</span>[<span>'promote_price'</span>]; <span>$watermark_img</span> = empty(<span>$vo</span>[<span>'watermark_img'</span>]) ? <span>''</span>:<span>'<img src="/static/imghw/default1.png" data-src="'</span>.<span>$config</span>[<span>'site_url'</span>].<span>$vo</span>[<span>'goods_thumb'</span>].<span>'" class="lazy" style="max-width:90%" style="max-width:90%" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表" >.<span>'themes/'</span> . <span>$_CFG</span>[<span>'template'</span>].<span>'/images/'</span>.<span>$vo</span>[<span>'watermark_img'</span>].<span>'.png" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表"</span>.<span>$vo</span>[<span>'goods_name'</span>].<span>'" />'</span>; /* <span>$sayList</span>[] = array( <span>'pro-inner'</span> => <span>' <div> <a href="'</span>.<span>%24vo</span>%5B<span>'url'</span>%5D.<span>'"> <img src="/static/imghw/default1.png" data-src="'</span>.<span>$config</span>[<span>'site_url'</span>].<span>$vo</span>[<span>'goods_thumb'</span>].<span>'" class="lazy" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表" >.<span>$config</span>[<span>'site_url'</span>].<span>$vo</span>[<span>'goods_thumb'</span>].<span>'" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表"</span>.<span>$vo</span>[<span>'goods_name'</span>].<span>'"> </span></a> </div> <div> <div> <a href="'</span>.<span>%24vo</span>%5B<span>'url'</span>%5D.<span>'">'.<span>$vo</span>[<span>'name'</span>].<span>'</span></a> </div> <div></div> <div> <em>'. <span>$shop_price</span> .<span>'</span></em> </div> <div> <del>'.<span>$vo</span>[<span>'market_price'</span>].<span>'</span></del> </div> <div>月销:<em>'.<span>$vo</span>[<span>'sales_count'</span>].<span>'</span></em> </div> <div>'.<span>$watermark_img</span>.<span>'</span> </div> </div>'</span> );*/ <span>$collectStr</span> = <span>''</span>; <span>if</span>(<span>$vo</span>[<span>'collect'</span>]){ //如果已经搜藏了那么 <span>$collectStr</span> = <span>'<a>$vo</a></span>[<span>'goods_id'</span>].<span>')">'</span>; }<span>else</span>{ //如果没有搜藏那么 <span>$collectStr</span> = <span>'<a>$vo</a></span>[<span>'goods_id'</span>].<span>')">'</span>; } <span>$sayList</span>[] = array( <span>'pro-inner'</span>=><span>' <a href="'</span>.<span>%24vo</span>%5B<span>'url'</span>%5D.<span>'"> <img src="/static/imghw/default1.png" data-src="'</span>.<span>$config</span>[<span>'site_url'</span>].<span>$vo</span>[<span>'goods_thumb'</span>].<span>'" class="lazy" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表" >.<span>$config</span>[<span>'site_url'</span>].<span>$vo</span>[<span>'goods_thumb'</span>].<span>'" alt="基于ecshop的移动端 etouch实现动态获取分类商品列表"</span>.<span>$vo</span>[<span>'goods_name'</span>].<span>'"> </span></a> <div> <span> '</span>.<span>$vo</span>[<span>'name'</span>].<span>' </span> <p> <span>'</span>. <span>$shop_price</span> .<span>'</span> </p> <p> 月销:'.<span>$vo</span>[<span>'sales_count'</span>].<span>' </span></p> </div> '</span>.<span>$collectStr</span>.<span>' <div> <!--<span data-operation="pre" data-goods-id="'</span>.<span>$vo</span>[<span>'goods_id'</span>].<span>'"></span>--> <input type="number" name="number" value="1" min="1" max="1"> <span data-operation="next" data-goods-id="'</span>.<span>$vo</span>[<span>'goods_id'</span>].<span>'"></span> </div> '</span> ); } } <span>echo</span> json_encode(<span>$sayList</span>); <span>exit</span>; }</span></code>
还有一个叫做 category_get_goods 这个函数此函数新增了一个字段 collect返回字段可以用于前端页面视图渲染的时候实现判断是否已经搜藏 并且根据是否搜藏显示不同的样式和绑定不同的事件函数
<code><span>/** * 获得分类下的商品 * *<span> @access</span> public *<span> @param</span> string $children *<span> @return</span> array */</span><span><span>function</span><span>category_get_goods</span><span>(<span>$children</span>, <span>$brand</span>, <span>$min</span>, <span>$max</span>, <span>$ext</span>, <span>$size</span>, <span>$page</span>, <span>$sort</span>, <span>$order</span>)</span> {</span><span>$display</span> = <span>$GLOBALS</span>[<span>'display'</span>]; <span>$where</span> = <span>"g.is_on_sale = 1 AND g.is_alone_sale = 1 AND "</span>. <span>"g.is_delete = 0 AND ($children OR "</span> . get_extension_goods(<span>$children</span>) . <span>')'</span>; <span>if</span> (<span>$brand</span> > <span>0</span>) { <span>$where</span> .= <span>"AND g.brand_id=$brand "</span>; } <span>if</span> (<span>$min</span> > <span>0</span>) { <span>$where</span> .= <span>" AND g.shop_price >= $min "</span>; } <span>if</span> (<span>$max</span> > <span>0</span>) { <span>$where</span> .= <span>" AND g.shop_price ; } <span>/* 获得商品列表 */</span><span>$sql</span> = <span>'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, '</span> . <span>"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, "</span> . <span>'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img '</span> . <span>'FROM '</span> . <span>$GLOBALS</span>[<span>'ecs'</span>]->table(<span>'goods'</span>) . <span>' AS g '</span> . <span>'LEFT JOIN '</span> . <span>$GLOBALS</span>[<span>'ecs'</span>]->table(<span>'member_price'</span>) . <span>' AS mp '</span> . <span>"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' "</span> . <span>"WHERE $where $ext ORDER BY $sort $order"</span>; <span>$res</span> = <span>$GLOBALS</span>[<span>'db'</span>]->selectLimit(<span>$sql</span>, <span>$size</span>, (<span>$page</span> - <span>1</span>) * <span>$size</span>); <span>$arr</span> = <span>array</span>(); <span>while</span> (<span>$row</span> = <span>$GLOBALS</span>[<span>'db'</span>]->fetchRow(<span>$res</span>)) { <span>if</span> (<span>$row</span>[<span>'promote_price'</span>] > <span>0</span>) { <span>$promote_price</span> = bargain_price(<span>$row</span>[<span>'promote_price'</span>], <span>$row</span>[<span>'promote_start_date'</span>], <span>$row</span>[<span>'promote_end_date'</span>]); } <span>else</span> { <span>$promote_price</span> = <span>0</span>; } <span>/* 处理商品水印图片 */</span><span>$watermark_img</span> = <span>''</span>; <span>if</span> (<span>$promote_price</span> != <span>0</span>) { <span>$watermark_img</span> = <span>"watermark_promote_small"</span>; } <span>elseif</span> (<span>$row</span>[<span>'is_new'</span>] != <span>0</span>) { <span>$watermark_img</span> = <span>"watermark_new_small"</span>; } <span>elseif</span> (<span>$row</span>[<span>'is_best'</span>] != <span>0</span>) { <span>$watermark_img</span> = <span>"watermark_best_small"</span>; } <span>elseif</span> (<span>$row</span>[<span>'is_hot'</span>] != <span>0</span>) { <span>$watermark_img</span> = <span>'watermark_hot_small'</span>; } <span>if</span> (<span>$watermark_img</span> != <span>''</span>) { <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'watermark_img'</span>] = <span>$watermark_img</span>; } <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_id'</span>] = <span>$row</span>[<span>'goods_id'</span>]; <span>if</span>(<span>$display</span> == <span>'grid'</span>) { <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_name'</span>] = <span>$GLOBALS</span>[<span>'_CFG'</span>][<span>'goods_name_length'</span>] > <span>0</span> ? sub_str(<span>$row</span>[<span>'goods_name'</span>], <span>$GLOBALS</span>[<span>'_CFG'</span>][<span>'goods_name_length'</span>]) : <span>$row</span>[<span>'goods_name'</span>]; } <span>else</span> { <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_name'</span>] = <span>$row</span>[<span>'goods_name'</span>]; } <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'name'</span>] = <span>$row</span>[<span>'goods_name'</span>]; <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_brief'</span>] = <span>$row</span>[<span>'goods_brief'</span>]; <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_style_name'</span>] = add_style(<span>$row</span>[<span>'goods_name'</span>],<span>$row</span>[<span>'goods_name_style'</span>]); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'market_price'</span>] = price_format(<span>$row</span>[<span>'market_price'</span>]); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'shop_price'</span>] = price_format(<span>$row</span>[<span>'shop_price'</span>]); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'type'</span>] = <span>$row</span>[<span>'goods_type'</span>]; <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'promote_price'</span>] = (<span>$promote_price</span> > <span>0</span>) ? price_format(<span>$promote_price</span>) : <span>''</span>; <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_thumb'</span>] = get_image_path(<span>$row</span>[<span>'goods_id'</span>], <span>$row</span>[<span>'goods_thumb'</span>], <span>true</span>); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'goods_img'</span>] = get_image_path(<span>$row</span>[<span>'goods_id'</span>], <span>$row</span>[<span>'goods_img'</span>]); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'url'</span>] = build_uri(<span>'goods'</span>, <span>array</span>(<span>'gid'</span>=><span>$row</span>[<span>'goods_id'</span>]), <span>$row</span>[<span>'goods_name'</span>]); <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'sales_count'</span>] = get_sales_volume(<span>$row</span>[<span>'goods_id'</span>]); <span>//显示月销量 by wang</span><span>if</span> (<span>isset</span>(<span>$_SESSION</span>[<span>'user_id'</span>]) || <span>$_SESSION</span>[<span>'user_id'</span>] != <span>0</span>) { <span>/* 检查是否已经存在于用户的收藏夹 */</span><span>$sql</span> = <span>"SELECT COUNT(*) FROM "</span> .<span>$GLOBALS</span>[<span>'ecs'</span>]->table(<span>'collect_goods'</span>) . <span>" WHERE user_id='$_SESSION[user_id]' AND goods_id = '"</span>.<span>$row</span>[<span>'goods_id'</span>].<span>"'"</span>; <span>if</span> (<span>$GLOBALS</span>[<span>'db'</span>]->GetOne(<span>$sql</span>) > <span>0</span>) { <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'collect'</span>] = <span>1</span>; } <span>else</span> { <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'collect'</span>] = <span>0</span>; } }<span>else</span>{ <span>$arr</span>[<span>$row</span>[<span>'goods_id'</span>]][<span>'collect'</span>] = <span>0</span>; } } <span>return</span><span>$arr</span>; }</span></code>
客户端js代码参考
<code><span>/* * * 添加商品到收藏夹 */</span><span>var</span> _current_collect = <span>null</span>; <span>var</span> _current_goodsId = <span>0</span>; <span><span>function</span><span>collect</span><span>(_this,goodsId)</span> {</span> _current_collect = _this; _current_goodsId = goodsId; jQuery.get(<span>'user.php?act=collect'</span>,{id:goodsId},collectResponse,<span>"JSON"</span>); } <span><span>function</span><span>uncollect</span><span>(_this,goodsId)</span> {</span> _current_collect = _this; _current_goodsId = goodsId; jQuery.get(<span>'user.php?act=uncollect'</span>,{id:goodsId},collectResponse,<span>"JSON"</span>); } <span>/* * * 处理收藏商品的反馈信息 */</span><span><span>function</span><span>collectResponse</span><span>(result)</span> {</span><span>if</span>(<span>parseInt</span>(result.error) === <span>0</span>){ _current_collect.className = <span>''</span>; _current_collect.className =<span>"ycd-font-icon uncollect"</span>; _current_collect.setAttribute(<span>'onclick'</span>,<span>"uncollect(this,"</span>+_current_goodsId+<span>")"</span>); _current_collect.innerHTML = <span>''</span>; } <span>if</span>(<span>parseInt</span>(result.error) === <span>3</span>){ _current_collect.className = <span>''</span>; _current_collect.className =<span>"ycd-font-icon collect"</span>; _current_collect.setAttribute(<span>'onclick'</span>,<span>"collect(this,"</span>+_current_goodsId+<span>")"</span>); _current_collect.innerHTML = <span>''</span>; } <span>//这里加入成功</span><span>//注意这里引入了一个自己写的基于zepto移动端函数库的一个插件 请参考我以前写的一篇文章里面有这个插件的代码</span> Zepto(<span>'body'</span>).popup({ title:<span>'提示信息'</span> ,id:<span>'alert'</span> ,closeOnOk:<span>true</span> ,ok:<span>'确定'</span>, message:result.message }); }</code>
总结
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });以前非常喜欢php 弄过一段时间 所以php代码也是基本上都能够看懂 mysql 也学过
没有php 基础的童鞋可以先去学学php基础
现在博主努力专研前端 后端也在学习 最近学习javascript 和 html5的新api 这些
记录下自己的工作
以上就介绍了基于ecshop的移动端 etouch实现动态获取分类商品列表,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Fujifilm-Fans waren kürzlich sehr gespannt auf die Aussicht auf die X-T50, da sie eine Neuauflage der preisgünstigen Fujifilm X-T30 II darstellte, die in der APS-C-Kategorie unter 1.000 US-Dollar recht beliebt geworden war. Leider ist die Fujifilm X-T50 auf den Markt gekommen

DerFiiOCP13-KassettenspielerwurdeimJanuarangekündigt.JetzterweitertFiiOseinPortfolioumzweineueModelle – einesmiteinerFrontundeinesmiteinertransparentenFront.Letzteres passt nicht nur perfekt zum Retro-Charme des eckigen Designs, sondern auch

Der Klipsch Flexus Core 300 ist das Topmodell der Serie und positioniert sich über dem bereits verfügbaren Flexus Core 200 im Soundbar-Sortiment des Unternehmens. Laut Klipsch handelt es sich um die erste Soundbar der Welt, deren Klang sich an die Anforderungen anpassen lässt

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Während das LightPhone2 aus dem Jahr 2018 noch mit einem sparsamen Ink-Display ausgestattet war, verfügt das LightPhone3 über ein OLED-Display, das nur Graustufen darstellen kann. Der Grund für den Umstieg auf das 3,92-Zoll-OLED-Panel mit seiner Auflösung von 1.240 x 1.080 ist

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

Kurz nachdem Tesla Ende letzten Jahres die Aktualisierung des Model 3 Highland auf den Markt gebracht hatte, änderten sich die bundesstaatlichen Steueranreizregeln für Elektrofahrzeuge in den USA, wodurch der potenzielle Rabatt für berechtigte Käufer halbiert wurde, da Tesla im neuen M chinesische LFP-Zellen verwendet
