ホームページ バックエンド開発 PHPチュートリアル ecshopベースのモバイルetouchは、分類された商品リストの動的な取得を実装します

ecshopベースのモバイルetouchは、分類された商品リストの動的な取得を実装します

Jul 29, 2016 am 08:57 AM
gt price

ファイル category.php を変更します

2 つの重要な場所を変更する必要があります

<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 width="55" height="16" src="'</span>.<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>$vo</span>[<span>'url'</span>].<span>'" > <img src="'</span>.<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>'"> </a> </div>
        <div>
          <div> <a href="'</span>.<span>$vo</span>[<span>'url'</span>].<span>'" >'</span>.<span>$vo</span>[<span>'name'</span>].<span>'</a> </div>
          <div></div>
          <div>
            <em>'</span>. <span>$shop_price</span> .<span>'</em> 
          </div>
          <div> <del>'</span>.<span>$vo</span>[<span>'market_price'</span>].<span>'</del></div>
          <div>月销:<em>'</span>.<span>$vo</span>[<span>'sales_count'</span>].<span>'</em></div>
          <div>'</span>.<span>$watermark_img</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</span>[<span>'goods_id'</span>].<span>')">&#xe63e;</a>'</span>;
                }<span>else</span>{
                    //如果没有搜藏那么
                    <span>$collectStr</span> = <span>'<a >$vo</span>[<span>'goods_id'</span>].<span>')">&#xe620;</a>'</span>;
                }
                <span>$sayList</span>[] = array(
                 <span>'pro-inner'</span>=><span>'
                     <a href="'</span>.<span>$vo</span>[<span>'url'</span>].<span>'">
                        <img src="'</span>.<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>'">
                    </a>
                    <div>
                        <span>
                            '</span>.<span>$vo</span>[<span>'name'</span>].<span>'
                        </span>
                        <p>
                            <span>'</span>. <span>$shop_price</span> .<span>'</span>
                        </p>
                        <p>
                            月销:'</span>.<span>$vo</span>[<span>'sales_count'</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>'">&#xe62a;</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>'">&#xe62d;</span>
                    </div>
                 '</span>
                );
            }
        }
        <span>echo</span> json_encode(<span>$sayList</span>);
        <span>exit</span>;
    }</code>
ログイン後にコピー

category_get_goods という関数もあります。この関数は、レンダリング時に収集されたかどうかを判断するために使用できる新しいフィールドを追加します。フロントエンドページビューは、収集されるかどうかに応じて、異なるスタイルが表示され、異なるイベント関数がバインドされます

<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 <= $max "</span>;
    }

    <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>'&#xe63e;'</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>'&#xe620;'</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>
ログイン後にコピー

概要

私はphpがとても好きでした。しばらく勉強したので、php コードでの mysql も基本的に理解できるようになりました
PHP の基礎を持たない子供用シューズは、最初に PHP の基礎を学ぶことができます
現在、ブロガーはフロントエンドとバックエンドに特化して頑張っています。最近、JavaScript と HTML5 の新しい API を学びました。 作業を記録します

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); }); 上記は、コンテンツの側面を含め、分類された製品のリストを動的に取得するための ecshop に基づいたモバイル etouch を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

富士フイルム X-M5 の価格予想が上昇、自撮りディスプレイの流出で以前は手頃な価格だったカメララインが複雑化 富士フイルム X-M5 の価格予想が上昇、自撮りディスプレイの流出で以前は手頃な価格だったカメララインが複雑化 Sep 07, 2024 am 09:34 AM

富士フイルムのファンは最近、X-T50 の登場に非常に興奮していました。X-T50 は、1,000 ドル以下の APS-C カテゴリーで非常に人気となっていた低価格志向の富士フイルム X-T30 II の再発売を提示したからです。残念ながら、富士フイルム X-T50 の発売に伴い

FiiO CP13 カセットプレーヤーは透明なレトロな外観で発売 FiiO CP13 カセットプレーヤーは透明なレトロな外観で発売 Jun 16, 2024 am 09:52 AM

FiiOCP13カセットプレーヤーは1月に発表されました。現在、FiiOは2つの新しいモデルでポートフォリオを拡大しています。1つは前面が赤で、もう1つは透明な前面です。後者は、角張ったデザインのレトロな魅力に完全に一致するだけでなく、

Klipsch、8Kサポート、12個のスピーカー、ルームコレクションを備えたFlexus Core 300フラッグシップサウンドバーを発表 Klipsch、8Kサポート、12個のスピーカー、ルームコレクションを備えたFlexus Core 300フラッグシップサウンドバーを発表 Sep 05, 2024 am 10:16 AM

Klipsch Flexus Core 300はシリーズの最上位モデルで、同社のサウンドバーラインナップではすでに発売されているFlexus Core 200の上に位置します。クリプシュ氏によると、これはサウンドをさまざまな環境に適応できる世界初のサウンドバーだという。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

Light Phone 3 は 50% 割引、モノクロ OLED、シンプルなデザインで発売 Light Phone 3 は 50% 割引、モノクロ OLED、シンプルなデザインで発売 Jun 13, 2024 pm 10:18 PM

2018年のLightPhone 2にはまだエコノミカルインクディスプレイが搭載されていましたが、LightPhone 3ではグレースケール表示のみが可能なOLEDディスプレイが使用されています。

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

取引 |テスラ モデル 3 ロングレンジ AWD、7,500 ドルの税制優遇を全額取り戻し、価格は 40,000 ドル未満に低下 取引 |テスラ モデル 3 ロングレンジ AWD、7,500 ドルの税制優遇を全額取り戻し、価格は 40,000 ドル未満に低下 Jun 19, 2024 am 09:55 AM

テスラが昨年末にモデル 3 ハイランドのリフレッシュを発売した直後、米国連邦政府の EV 税制優遇規則が変更され、テスラが新型 M に中国製 LFP セルを使用したことにより、対象となる購入者の潜在的な割引額が半分に減りました。

See all articles