2016-11-16 40 views
1

我使用的是OC 2.2.0。在前端,我需要自動完成名稱和模型。現在,只有名稱autocompletes。在目錄/模型/目錄/ product.php我改變Opencart啓用名稱和型號的自動完成

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

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

但仍不能得到模型自動完成。相反,我總是必須輸入整個模型名稱,但它必須是自動完成的。有什麼建議麼?

回答

0

經過多天的研究和查看代碼,我設法瞭解並解決了我的問題。我正在看所有錯誤的地方。需要更改的唯一文件是getdata.php,它位於OC的根目錄中。所以,默認自動完成僅適用於產品名稱。正是在這一文件中定義是這樣的:

$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表添加確切的查詢模型或任何數據庫字段。意思是,例如,複製名稱查詢並用p.model替換pd.name,並將其替換爲['name']替換爲['model']。瞧!我真的希望這有助於某人,直到今天我自己也無法實現這一點。

相關問題