Перейти к содержимому


Фото
* * * * * 3 голосов

Модернизация поиска AJAX


  • Чтобы отвечать, сперва войдите на форум
63 ответов в теме

#41 Dmitry86

Dmitry86
  • Пользователь
  • 136 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 10.11.2016 - 23:46

Люди добрые, подскажите, у меня как только в выборке из базы появляются p.name, p.views

 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)

То перестает работать живой поиск на сайте (нет выпадашки с предложениями)..



#42 mishanya

mishanya
  • Фрилансер
  • 2 546 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 11.11.2016 - 00:25

Люди добрые, подскажите, у меня как только в выборке из базы появляются p.name, p.views

 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)

То перестает работать живой поиск на сайте (нет выпадашки с предложениями)..

 

в симпла в базе нет поля p.views, от этого ошибка в запросе удалите его, а p.name оставьте. видимо у ТС был модуль количества просмотров товара. отсюда и поле.



#43 Dmitry86

Dmitry86
  • Пользователь
  • 136 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 11.11.2016 - 09:18

в симпла в базе нет поля p.views, от этого ошибка в запросе удалите его, а p.name оставьте. видимо у ТС был модуль количества просмотров товара. отсюда и поле.

mishanya, извиняюсь, неправильно скопировал, не "p.name, p.views", а p.views, v.price. Я убирал p.views, но с v.price тоже не работает.. Походу я так просто не отделаюсь)



#44 Skynet

Skynet
  • Пользователь
  • 71 сообщений

Опубликовано 09.12.2016 - 22:28

При поиске можно вывести ещё и цену очень удобно. не надо заходить и смотреть 
 
Стиль
.header-search-suggest-uah{color:#329a1c;line-height:1em;font-weight:bold;}
JAVA SCRIPT
 

 

<script>
    $(function() {
        //  Автозаполнитель поиска
        $(".input_search").autocomplete({
            serviceUrl:'ajax/search_products.php',
            minChars:1,
            noCache: false, 
            onSelect:
                function(value, data){
                     $(".input_search").closest('form').submit();
                },
            fnFormatResult:
                function(value, data, currentValue){
                    var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
                    var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
                      return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')+(data.price?"</br>Цена:<div class='header-search-suggest-uah'>"+data.price+"</div>":'');
                }    
        });
    });
    </script>
         
    {/literal}
В  папке AJAX
ajax/search_products.php
<?php
    chdir('..');
    require_once('api/Simpla.php');
    $simpla = new Simpla();
    $limit = 30;
    
    $keyword = $simpla->request->get('query', 'string');   
был
$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
                        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
меняем на это запрос 
 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
    $products = $simpla->db->results();


    foreach($products as $product)
    {
        if(!empty($product->image))
            {
                $product->image = $simpla->design->resize_modifier($product->image, 35, 35);
                $products_names[] = $product->name;
                $products_views[] = $product->views;
после добавляем строчку
 $products_price[] = $product->price;
                
                
            }
        else
            $products_names[] = $product->name;    
            $products_views[] = $product->views;
после добавляем строчку
            $products_price[] = $product->price;


        $products_data[] = $product;
    }


    $res->query = $keyword;
    $res->suggestions = $products_names;
    $res->data = $products_data;
    header("Content-type: application/json; charset=UTF-8");
    header("Cache-Control: must-revalidate");
    header("Pragma: no-cache");
    header("Expires: -1");        
    print json_encode($res);
Ну а сам вывод стандартный
<div id="search">
                <form action="products">
                    <input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск товара"/>
                    <input class="button_search" value="" type="submit" />
                </form>
            </div>

 

Добрый вечер.

 

Подскажите пожалуйста, если валюта по умолчанию доллар, как можно конвертировать цену доллара в другую валюту?

В файле search_products.php прописано:

$products_price[] = $product->price;

И при поиске товара цена выводится в долларах, а нужно в рублях.



#45 Skynet

Skynet
  • Пользователь
  • 71 сообщений

Опубликовано 10.12.2016 - 08:33

добрые люди, откликнитесь пожалуйста



#46 Skynet

Skynet
  • Пользователь
  • 71 сообщений

Опубликовано 10.12.2016 - 23:13

в запросе есть v.price

$simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
    $products = $simpla->db->results();

Выдаёт цену товара в долларах, т.к. основная валюта в админке доллар, но в магазине цена в рублях.

 

Как сделать вывод цены в поиске в рублях?



#47 mishanya

mishanya
  • Фрилансер
  • 2 546 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 11.12.2016 - 00:13

Добрый вечер.

 

Подскажите пожалуйста, если валюта по умолчанию доллар, как можно конвертировать цену доллара в другую валюту?

В файле search_products.php прописано:

$products_price[] = $product->price;

И при поиске товара цена выводится в долларах, а нужно в рублях.

 

попробуйте

$products_price[] = $simpla->money->convert($product->price, 2);

где 2 это айди алюты в которую нужно конвертировать



#48 Skynet

Skynet
  • Пользователь
  • 71 сообщений

Опубликовано 11.12.2016 - 16:31

попробуйте

$products_price[] = $simpla->money->convert($product->price, 2);

где 2 это айди алюты в которую нужно конвертировать

 


Мишаня, спасибо вам огромное! Очень помогли. Правда заработало у меня так:

 

$product->price = $simpla->money->convert($product->price, 2);


#49 Dmitry86

Dmitry86
  • Пользователь
  • 136 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 01.02.2017 - 00:04

Народ, а подскажите, как добавить наличие вариантов в живой поиск? Есть такая строчка, вот сюда бы вывести

return '<div class="suggest-box">'+(data.image?"<div class='suggest-image'><img src='"+data.image+"' alt=''></div>":'') +'<a href="'+data.url+'" title="">'+ linkValue +'</a>'+(data.product_code?"<div class='suggest-code'>Код: "+data.product_code.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')+"</div>":'')+(data.price?"<div class='suggest-price'>"+data.price+" руб.</div>":'')+(data.thiss?"<div class='suggest-category'>Перейти в категорию</div>":'')+'</div>';

Сейчас у нас в поиске выводятся все варианты одного товара, даже если некоторых вариантов нет в наличии. Хочу добавить: есть в наличии / нет в наличии


Изменено: Dmitry86, 01.02.2017 - 00:07


#50 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 13.01.2018 - 02:11

Парни, помогите пожалуйста! Какой код нужно добавить,чтобы помимо картинки и названия товара (при поиске) была и кнопка "купить"?



#51 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 555 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 13.01.2018 - 03:22


Парни, помогите пожалуйста! Какой код нужно добавить,чтобы помимо картинки и названия товара (при поиске) была и кнопка "купить"?


При клике вам нужен переход в корзину или эффект перелёта картинки товара в блок корзины?

#52 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 13.01.2018 - 04:40


При клике вам нужен переход в корзину или эффект перелёта картинки товара в блок корзины?


Эффект перелёта и надпись после нажатия "добавлено", по аналогии, как при нажатии на обычную кнопку в товаре.

#53 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 13.01.2018 - 19:34

При клике вам нужен переход в корзину или эффект перелёта картинки товара в блок корзины?

 Желательно, но не обязательно!



#54 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 555 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 15.01.2018 - 11:44


Желательно, но не обязательно!


Сегодня сделаю и отпишусь.

#55 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 16.01.2018 - 00:17

Сегодня сделаю и отпишусь.

с нетерпением буду ждать!



#56 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 21.01.2018 - 16:34

Ребят, вопрос актулаьный! нужно чтобы в "живом" поиске была кнопка "купить". Полагаю редактировать надо файл ajax/search_products.php. но не могу разобраться что конкретно нужно писать. 
Заранее благодарен!
(скрин как должно выглядеть https://ibb.co/nzDBKG)
 
По функционалу хочу чтобы получилось как здесь в итоге http://unit.kiev.ua/cart/
Чтобы пользователь добавлял товары через поиск сразу товар попадал в корзину.

Изменено: alexandr_azd, 21.01.2018 - 16:53


#57 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 555 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.01.2018 - 18:16


Ребят, вопрос актулаьный! нужно чтобы в "живом" поиске была кнопка "купить". Полагаю редактировать надо файл ajax/search_products.php. но не могу разобраться что конкретно нужно писать.
Заранее благодарен!
(скрин как должно выглядеть https://ibb.co/nzDBKG)

По функционалу хочу чтобы получилось как здесь в итоге http://unit.kiev.ua/cart/
Чтобы пользователь добавлял товары через поиск сразу товар попадал в корзину.

Вы вообще адекватная особь?
На юните моя работа была предоставлена вам как пример, вы смылись...

#58 shooroop

shooroop
  • Фрилансер
  • 685 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 21.01.2018 - 18:24

Вы вообще адекватная особь?
На юните моя работа была предоставлена вам как пример, вы смылись...

 

так бесплатно же хочет видимо



#59 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 555 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.01.2018 - 18:28

так бесплатно же хочет видимо

Да нет, предлагал сам деньги, но что-то у него не сложилось.
Повременим...

#60 alexandr_azd

alexandr_azd
  • Пользователь
  • 16 сообщений
  • Дизайн, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Ростов

Опубликовано 21.01.2018 - 20:27

Вы вообще адекватная особь?

"Особь" это ты к родственникам своим так обращайся. 

 

Кто куда "смылся"? Личку почитай, молчишь 2 дня, ты ж не принцесса чтобы тебя ждать. 
Заинтересованный ответит. Не заинтересованный, но культурный тоже ответит. А ты молчишь.
  Походу проблемы у тебя в подбирании слов, и понимании их значений).






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых