2016-11-16 11 views
1

私はOC 2.2.0を使用しています。フロントエンドでは、名前とモデルの両方でオートコンプリートが必要です。今、名前のオートコンプリートのみ。カタログ/モデル/カタログ/ product.phpでは、私は名前とモデルのオートコンプリートを有効にするOpencart

$sql .= " OR LCASE(p.model) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'"; 

$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; 

を変更しかし、まだモデルにオートコンプリートを取得することはできません。代わりに、私は常にモデル名全体を入力する必要がありますが、オートコンプリートでなければなりません。助言がありますか?

答えて

0

コードを調査して何日も調べた後、私は自分の問題を理解して解決しました。私はすべての間違った場所を見ていた。変更が必要な唯一のファイルは、OCのルートにあるgetdata.phpです。したがって、デフォルトのオートコンプリートは製品名のみです。それは、このように、このファイルに定義されています。今

$sql = "SELECT pd.name FROM " . DB_PREFIX . "product p," . DB_PREFIX . "product_description pd WHERE p.status = 1 AND p.product_id = pd.product_id AND language_id = '".$id."' AND UPPER(pd.name) like UPPER('%$q%') GROUP BY pd.product_id ORDER BY pd.name ASC"; 
    $res = mysql_query($sql); 
    if(mysql_num_rows($res)>0){ 
     while($ro = mysql_fetch_assoc($res)){ 

      $name = str_replace(array('\'', '"', ',' , ';', '<', '>','&quot','&'), ' ', $ro['name']); 
     //$str[]= $name."\n"; 
     echo $name."\n"; 
     } 
    } 

、あなたがする必要があるすべてはあなたが自動補完必要oc_productテーブルにモデルまたはいずれかのデータベースフィールドの正確なクエリを追加することです。たとえば、名前クエリをコピーしてpd.namep.modelに置き換え、['name']['model']で置き換えられているところで置き換えます。そしてボイル!私は本当にこれが誰かを助けてくれることを願っています。今日までこれを実現するのに苦労しました。

関連する問題