ホームページ >バックエンド開発 >PHPチュートリアル >Zhongguancun Online や Pacific Automotive と同様に、複数属性検索はどのように行われますか?また、そのアイデアは何ですか?

Zhongguancun Online や Pacific Automotive と同様に、複数属性検索はどのように行われますか?また、そのアイデアは何ですか?

WBOY
WBOYオリジナル
2016-06-23 14:26:571214ブラウズ

この投稿は、airukongqi4321 によって最終編集されました: 2013-11-03 11:44:21

複数属性検索

http://detail.zol.com.cn/notebook_index/subcate16_0_list_4000_s1227_1_1_0_1.html 中関村オンライン
http:/ /price .pcauto.com.cn/price/q-p2-k75.html Pacific Auto

属性をクリックすると、それに応じて製品の一部の属性が灰色になり、使用できなくなります
質問: このような機能を実現するにはどうすればよいですか?どのような考え方で、どのように行うのか。 。 。
スコアが低くてごめんなさい、笑...

ディスカッションに返信します (解決策)

誰かが以前にこれを質問しました

2 つの解決策:
1 は、JavaScript を使用して、選択した変数を URL に結合することです。最初に選択し、ボタンをクリックしてから Web ページを開く必要があります (操作は送信に似ています)
2 は、PHP が各パラメータに従ってリンクを書き込むことです。このスキームは、パラメータがクリックされるたびに Web ページを更新します。ウェブページでは、選択された複数のリンクを参照します 条件はすべてのリンクの出力を再計算します

2 の変形ソリューションは ajax です

view-source:http://detail.zol.com.cn/notebook_index/subcate16_0_list_4000_s1227_1_1_0_1.html

<dt>品牌</dt>    <dd class="brand-sel-box clearfix">        <div id="singular" class="brand-list">                                    <span class="all sel">不限</span>                                                                                        <a href="/notebook_index/subcate16_160_list_4000_s1227_1_1_0_1.html">联想</a>                                <a href="/notebook_index/subcate16_227_list_4000_s1227_1_1_0_1.html">华硕</a>                                <a class="null" rel="nofollow" href="/notebook_index/subcate16_21_list_4000_s1227_1_1_0_1.html">戴尔</a>                                <a class="null" rel="nofollow" href="/notebook_index/subcate16_223_list_4000_s1227_1_1_0_1.html">惠普</a>                                <a href="/notebook_index/subcate16_1191_list_4000_s1227_1_1_0_1.html">神舟</a>                                <a class="null" rel="nofollow" href="/notebook_index/subcate16_218_list_4000_s1227_1_1_0_1.html">Acer宏?</a>.....<dt>价格</dt>    <dd class="clearfix">                        <a href="/notebook_index/subcate16_list_s1227_1.html" class="all">不限</a>                                        <a class="null" rel="nofollow" href="/notebook_index/subcate16_0_list_0_s1227_1_1_0_1.html">1999元以下</a>                <a href="/notebook_index/subcate16_0_list_2000_s1227_1_1_0_1.html">2000-2499元</a>                <a href="/notebook_index/subcate16_0_list_2500_s1227_1_1_0_1.html">2500-2999元</a>
明らかに、接続はサーバーによって生成されます

view-source:http://price.pcauto.com.cn/price/q-p2-k75.html
<div class="getTh">价格:</div><div class="umLimit"><a class='' href="/price/q-k75.html">不限</a></div><div class="Items"><a class='' href="/price/q-p1-k75.html">5万以下</a><a class=' s' href="/price/q-p2-k75.html">5-8万</a><a class='' href="/price/q-p3-k75.html">8-10万</a><a class='' href="/price/q-p4-k75.html">10-15万</a><a class='' href="/price/q-p5-k75.html">15-20万</a><a class='' href="/price/q-p6-k75.html">20-25万</a>......<div class="getTh">级别:</div><div class="umLimit"><a class='' href="/price/q-p2.html">不限</a></div><div class="Items"><a class=' ' href='/price/q-p2-k76.html'>微型车</a><a class=' ' href='/price/q-p2-k110.html'>小型车</a><a class=' ' href='/price/q-p2-k73.html'>紧凑型车</a><a class=' ' href='/price/q-p2-k72.html'>中型车</a><a class=' null' href='javascript:void(0)'>中大型车</a>

同じことが当てはまります

一般的なアイデアは統合することです背景をURLに埋め込んでフロントに出力します。

ajiax バックグラウンド処理データ

最も簡単な方法は、データ出力を取得するための ajax です

実際、問題の鍵は、「ものの 1 つの属性を通じて他の属性が存在するかどうかを判断する方法」です。データベースにアクセスして取得する条件であれば、実装は難しくありません。たとえば、条件


"50,000-80,000" をクリックすると、最も愚かな方法が選択されます。 * from auto_detail where Market_price >= 50000 and Market_price <
(auto_detail がすべてのメーカーのすべてのモデルを格納する詳細情報テーブルであると仮定します)

次に、結果を再度ループします。セット内の auto_grade と car_brand を 1 つずつ返します ...(省略);

では、「すべての車のクラス、車のブランド...」などのデータはどこから来たのでしょうか? xxx から別の auto_grade を選択するだけです。
より適切な作業を行う場合は、比較用で頻繁に更新する必要のないすべてのデータをキャッシュに保存すると、毎回データベースにアクセスして確認する必要がなくなります。

あとは、auto_grade にどの属性が存在し、どの属性が存在しないかを判断して、ページを制御してスタイルを変更するだけです。

上記は最も愚かなアプローチです。出発点として使用する必要があります

これは専用のエンタープライズ レベルの検索エンジンです。

solr、spix、lucene をチェックしてください!

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