KoVaLsKy 59 Posted August 22, 2012 Report Share Posted August 22, 2012 <?php define("AJAX_QUICKSEARCH_RESULT", 'text'); // dropdown or text define("AJAX_QUICKSEARCH_DROPDOWN_SIZE", 5); define("AJAX_QUICKSEARCH_LIMIT", 15); $q = addslashes(preg_replace("%[^0-9a-zA-Zа-яА-Я\s]%iu", "", $_REQUEST['keywords']) ); $out = ""; if(isset($q) && vam_not_null($q)) { $searchwords = explode(" ",$q); $nosearchwords = sizeof($searchwords); foreach($searchwords as $key => $value) { if ($value == '') unset($searchwords[$key]); } $searchwords = array_values($searchwords); $nosearchwords = sizeof($searchwords); foreach($searchwords as $key => $value) { $booltje = '+' . $searchwords[$key] . '*'; $searchwords[$key] = $booltje; } $q = implode(" ",$searchwords); $products_query = vam_db_query("select pd.products_id, pd.products_name, pd.products_keywords, p.products_model, p.products_image from " . TABLE_PRODUCTS_DESCRIPTION . " pd inner join " . TABLE_PRODUCTS . " p on (p.products_id = pd.products_id) where (match (pd.products_name) against ('" . $q . "' in boolean mode) or match (p.products_model) against ('" . $q . "' in boolean mode) or match (p.products_ean) against ('" . $q . "' in boolean mode) or match (pd.products_keywords) against ('" . $q . "' in boolean mode)" . ($_REQUEST['search_in_description'] == '1' ? "or match (pd.products_description) against ('" . $q . "' in boolean mode)" : "") . ") and p.products_status = '1' and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by pd.products_name asc limit " . AJAX_QUICKSEARCH_LIMIT); if(vam_db_num_rows($products_query)) { $out .= sprintf(TEXT_AJAX_QUICKSEARCH_TOP, AJAX_QUICKSEARCH_LIMIT) . '<br />'; $dropdown = array(); $out .= '<ul class="ajaxQuickFind">'; while($products = vam_db_fetch_array($products_query)) { if ($products['products_image']==''){ $image = DIR_WS_INFO_IMAGES.'../noimage.gif'; }else{ $image = DIR_WS_INFO_IMAGES.$products['products_image']; } $out .= '<li class="ajaxQuickFind"><a rel=nofollow" href="' . vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products['products_id'], $products['products_name']), 'NONSSL', false) . '"><img style="width:60px;" class="ajaximg" src="' . $image . '"/><span>' . $products['products_name'] . '</span></a></li>' . "\n"; $dropdown[] = array('id' => $products['products_id'], 'text' => $products['products_name']); } $out .= '</ul>' . "\n"; if(AJAX_QUICKSEARCH_RESULT == 'dropdown') { $out .= vam_draw_pull_down_menu('AJAX_QUICKSEARCH_pid', $dropdown, '', 'onChange="this.form.submit();" size="' . AJAX_QUICKSEARCH_DROPDOWN_SIZE . '" class="ajaxQuickFind"') . vam_hide_session_id(); } } } echo $out; ?> [/CODE] вот готовый код, в нем правда еще добавлен поиск по штрихкоду а вот разборка в строчку [CODE] $products_query = vam_db_query("select pd.products_id, pd.products_name, pd.products_keywords, p.products_model добавлен запрос на картинку товара т.е вот $products_query = vam_db_query("select pd.products_id, pd.products_name, pd.products_keywords, p.products_model, p.products_image [/code] далее проверяем, есть у товара картинка после [code] while($products = vam_db_fetch_array($products_query)) { вставляем if ($products['products_image']==''){ $image = DIR_WS_INFO_IMAGES.'../noimage.gif'; }else{ $image = DIR_WS_INFO_IMAGES.$products['products_image']; } [/code] в строчку [code] $out .= '<li class="ajaxQuickFind"><a rel=nofollow" href="' . vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products['products_id'], $products['products_name']), 'NONSSL', false) . '"><span>' . $products['products_name'] . '</span></a></li>' . "\n"; добавлен вывод картинки, т.е вот $out .= '<li class="ajaxQuickFind"><a rel=nofollow" href="' . vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products['products_id'], $products['products_name']), 'NONSSL', false) . '"><img style="width:60px;" class="ajaximg" src="' . $image . '"/><span>' . $products['products_name'] . '</span></a></li>' . "\n"; [/code] все. осталось стилями оформить по красивее. Link to post Share on other sites
Bomond 2 Posted September 3, 2012 Report Share Posted September 3, 2012 а есть пример как у тебя выглядит? я делал вот тут похожее)) Link to post Share on other sites
KoVaLsKy 59 Posted September 3, 2012 Author Report Share Posted September 3, 2012 сей час на денвере. на след неделе выложу сайт в сеть Link to post Share on other sites
sdi_68 3 Posted April 10, 2015 Report Share Posted April 10, 2015 А как-то можно это доработать, чтобы окно с результатами не раздвигала существующий блок, а как-бы накладывалась сверху, как в примере у Bomond (выше). Link to post Share on other sites
support 447 Posted April 10, 2015 Report Share Posted April 10, 2015 Можно конечно, в css стилях для этого блока укажите position: absolute; По идее, должно помочь. Link to post Share on other sites
Recommended Posts