Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не работает поиск в шапке


regau

Recommended Posts

Перестал работать поиск в шапке. В чём может быть дело? При этоп доп.поиск работает

 

 

 

 

http://pandasale.ru/

 

 

 

 

 

search.tpl

 

Спойлер

<?php echo $header; ?>


  <!-- ---------------------- -->

  <!--     I N T R O          -->

  <!-- ---------------------- -->

  <div id="intro">

    <div id="intro_wrap">

      <div class="s_wrap">

        <div id="breadcrumbs" class="s_col_12">

          <?php foreach ($breadcrumbs as $breadcrumb): ?>

          <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>

          <?php endforeach; ?>

        </div>

        <h1><?php echo $heading_title; ?></h1>

      </div>

    </div>

  </div>

  <!-- end of intro -->


  <!-- ---------------------- -->

  <!--      C O N T E N T     -->

  <!-- ---------------------- -->

  <div id="content" class="s_wrap">


    <?php if ($tbData->common['column_position'] == "left" && $column_right): ?>

    <div id="left_col" class="s_side_col">

    <?php echo $column_right; ?>

    </div>

    <?php endif; ?>


    <div id="search_results" class="s_main_col">


      <?php echo $content_top; ?>


      <span class="clear"></span>


      <?php $tbSlot->start('product\search.adv_search_box'); ?>

      <div id="adv_search_box">

        <h2><?php echo $text_critea; ?></h2>

        <div class="s_mb_0 clearfix">

          <input id="search_input" type="text" name="filter_name" class="filter_keyword s_sep"<?php if ($filter_name):?> value="<?php echo $filter_name; ?>"<?php endif; ?> size="50" />

          <select name="filter_category_id" id="filter_category_id" class="s_sep">

            <option value="0"><?php echo $text_category; ?></option>

            <?php foreach ($categories as $category_1): ?>

              <?php if ($category_1['category_id'] == $filter_category_id): ?>

              <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>

              <?php else: ?>

              <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>

              <?php endif; ?>

              <?php foreach ($category_1['children'] as $category_2): ?>

                <?php if ($category_2['category_id'] == $filter_category_id): ?>

                <option value="<?php echo $category_2['category_id']; ?>" selected="selected">      <?php echo $category_2['name']; ?></option>

                <?php else: ?>

                <option value="<?php echo $category_2['category_id']; ?>">      <?php echo $category_2['name']; ?></option>

                <?php endif; ?>

                <?php foreach ($category_2['children'] as $category_3): ?>

                  <?php if ($category_3['category_id'] == $filter_category_id): ?>

                  <option value="<?php echo $category_3['category_id']; ?>" selected="selected">            <?php echo $category_3['name']; ?></option>

                  <?php else: ?>

                  <option value="<?php echo $category_3['category_id']; ?>">            <?php echo $category_3['name']; ?></option>

                  <?php endif; ?>

                <?php endforeach; ?>

              <?php endforeach; ?>

            <?php endforeach; ?>

          </select>

          <a class="s_button_1 s_button_1_small s_main_color_bgr search_button"><span class="s_text"><?php echo $button_search; ?></span></a>

        </div>


        <span class="clear"></span>


        <div class="s_row_3 clearfix">

          <label class="s_checkbox" for="filter_sub_category"><input type="checkbox" name="filter_sub_category" value="1" id="filter_sub_category"<?php if ($filter_sub_category): ?> checked="checked"<?php endif; ?> /> <?php echo $text_sub_category; ?></label>

          <label class="s_checkbox">

            <input type="checkbox" name="filter_description" value="1" id="filter_description"<?php if ($filter_description): ?> checked="checked"<?php endif; ?> />

            <?php echo $entry_description; ?>

          </label>

        </div>


      </div>

      <?php $tbSlot->stop(); ?>


      <h2><?php echo $text_search; ?></h2>


      <?php $products = $tbSlot->filter('product\search.filter_products', $products, array('data' => $this->data)); ?>

      <?php $tbSlot->start('product\search.products_listing', array('products' => $products, 'data' => $this->data)); ?>

      <?php if ($products): ?>


      <div id="listing_options">

        <div id="listing_arrange">

          <span class="s_label"><?php echo $text_sort; ?></span>

          <div id="listing_sort" class="s_switcher">

            <?php foreach ($sorts as $sortss): ?>

              <?php if (($sort . '-' . $order) == $sortss['value']): ?>

                <span class="s_selected"><?php echo $sortss['text']; ?></span>

              <?php endif; ?>

            <?php endforeach; ?>

            <ul class="s_options" style="display: none;">

            <?php foreach ($sorts as $sortss): ?>

              <?php if (($sort . '-' . $order) != $sortss['value']): ?>

                <li><a href="<?php echo $sortss['href']; ?>"><?php echo $sortss['text']; ?></a></li>

              <?php endif; ?>

            <?php endforeach; ?>

            </ul>

          </div>

          <span class="s_label"><?php echo $text_limit; ?></span>

          <div id="items_per_page" class="s_switcher">

            <?php foreach ($limits as $limitss): ?>

              <?php if ($limit == $limitss['value']): ?>

                <span class="s_selected"><?php echo $limitss['text']; ?></span>

              <?php endif; ?>

            <?php endforeach; ?>

            <ul class="s_options" style="display: none;">

            <?php foreach ($limits as $limitss): ?>

              <?php if ($limit != $limitss['value']): ?>

                <li><a href="<?php echo $limitss['href']; ?>"><?php echo $limitss['text']; ?></a></li>

              <?php endif; ?>

            <?php endforeach; ?>

            </ul>

          </div>

        </div>

        <div id="view_mode" class="s_nav">

          <ul class="clearfix">

            <li id="view_grid"<?php if($tbData->product_listing_type == 'grid') echo ' class="s_selected"';?>>

              <a href="<?php echo $this->url->link('product/search', 'filter_name=' . $filter_name . '&setListingType=grid'); ?>" rel="nofollow">

                <span class="s_icon"></span><?php echo $tbData->text_grid; ?>

              </a>

            </li>

            <li id="view_list"<?php if($tbData->product_listing_type == 'list') echo ' class="s_selected"';?>>

              <a href="<?php echo $this->url->link('product/search', 'filter_name=' . $filter_name . '&setListingType=list'); ?>" rel="nofollow">

                <span class="s_icon"></span><?php echo $tbData->text_list; ?>

              </a>

            </li>

          </ul>

        </div>

        <?php if ($tbData->common['compare_enabled']): ?>

        <div>

          <a href="<?php echo $compare; ?>" id="compare_total" class="s_main_color"><?php echo $text_compare; ?></a>

        </div>

        <?php endif; ?>

      </div>


      <div class="clear"></div>


      <div class="s_listing <?php if ($tbData->product_listing_type == 'list'): ?>s_list_view<?php  else: ?>s_grid_view<?php endif; ?> <?php echo $tbData->common['products_per_row']; ?> clearfix">

        <?php foreach ($products as $product): ?>

        <?php $tbSlot->start('product\search.products.each', array('products' => $products, 'product' => $product, 'data' => $this->data)); ?>

        <div class="s_item product_<?php echo $product['product_id']; ?>">

          <a class="s_thumb" href="<?php echo $product['href']; ?>">

            <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" />

          </a>

          <div class="s_item_info">

            <h3><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h3>

            <?php if ($product['price']): ?>

            <div class="s_price_holder s_size_<?php echo $tbData->common['price_size']; ?> <?php echo 's_' . $tbData->common['price_design']; ?>">

              <?php if (!$product['special']): ?>

              <p class="s_price"><?php echo $tbData->priceFormat($product['price']); ?></p>

              <?php else: ?>

              <p class="s_price s_promo_price"><span class="s_old_price"><?php echo $tbData->priceFormat($product['price']); ?></span><?php echo $tbData->priceFormat($product['special']); ?></p>

              <?php endif ?>

            </div>

            <?php endif; ?>

            <p class="s_description"><?php echo utf8_substr($product['description'], 0, 250); ?>...</p>

            <?php if ($product['rating']): ?>

            <p class="s_rating s_rating_5">

              <span style="width: <?php echo $product['rating'] * 2 ; ?>0%;" class="s_percent"></span>

            </p>

            <?php endif; ?>

            <?php if ($tbData->common['checkout_enabled'] || $tbData->common['wishlist_enabled'] || $tbData->common['compare_enabled']): ?>

            <div class="s_actions">

              <?php if ($product['price']): ?>

              <?php if ($tbData->common['checkout_enabled']): ?>

              <a class="s_button_add_to_cart" href="javascript:;" onclick="addToCart('<?php echo $product['product_id']; ?>');">

                <span class="s_icon_16"><span class="s_icon"></span><?php echo $button_cart; ?></span>

              </a>

              <?php endif; ?>

              <?php endif; ?>

              <?php if ($tbData->common['wishlist_enabled']): ?>

              <a class="s_button_wishlist s_icon_10" onclick="addToWishList('<?php echo $product['product_id']; ?>');"><span class="s_icon s_add_10"></span><?php echo $tbData->text_wishlist; ?></a>

              <?php endif; ?>

              <?php if ($tbData->common['compare_enabled']): ?>

              <a class="s_button_compare s_icon_10" onclick="addToCompare('<?php echo $product['product_id']; ?>');"><span class="s_icon s_add_10"></span><?php echo $tbData->text_compare; ?></a>

              <?php endif; ?>

            </div>

            <?php endif; ?>

          </div>

        </div>

        <?php $tbSlot->stop(); ?>

        <?php endforeach; ?>

        <span class="clear"></span>

      </div>


      <div class="pagination">

        <?php echo $pagination; ?>

      </div>


      <?php else: ?>


      <p class="align_center s_f_16 s_sep s_p_20_0"><?php echo $text_empty; ?></p>


      <?php endif; ?>

      <?php $tbSlot->stop(); ?>


      <?php echo $content_bottom; ?>


    </div>


    <?php if ($tbData->common['column_position'] == "right" && $column_right): ?>

    <div id="right_col" class="s_side_col">

    <?php echo $column_right; ?>

    </div>

    <?php endif; ?>


    <script type="text/javascript">

    $('#content input[name=\'filter_name\']').keydown(function(e) {

      if (e.keyCode == 13) {

        $('#adv_search_box a.search_button').trigger('click');

      }

    });


    $('#adv_search_box a.search_button').bind('click', function() {

      url = 'index.php?route=product/search';


      var filter_name = $('#adv_search_box input.filter_keyword').attr('value');

      if (filter_name) {

        url += '&filter_name=' + encodeURIComponent(filter_name);

      }


      var filter_category_id = $('#filter_category_id').attr('value');

      if (filter_category_id > 0) {

        url += '&filter_category_id=' + encodeURIComponent(filter_category_id);

      }


      var filter_sub_category = $('#filter_sub_category:checked').attr('value');

      if (filter_sub_category) {

        url += '&filter_sub_category=true';

      }


      var filter_description = $('#filter_description:checked').attr('value');

      if (filter_description) {

        url += '&filter_description=true';

      }


      location = url;

    });


    </script>


  </div>

  <!-- end of content -->



<?php echo $footer; ?> 

 

 

Надіслати
Поділитися на інших сайтах


  • 4 months later...

а у меня в дефолтной теме в шапке почему-то не работает, не могу понять в чем проблема....

Надіслати
Поділитися на інших сайтах


  • 4 years later...

Короче в файле catalog/..../template/product/search.tpl - скрипт поиска будет обрабатываться если поиск находится в <div id="content"></div>

 

У меня в шапке не работал поиск, а дополнительный работал, обернул в этот див и все завертелось, закрутилось, но только работает по нажатию на enter, теперь там же в коде смотрю что с кнопкой не так.

 

v ocstore 2.3.0.2.3

 

PS: вдруг кому поможет, а то по opencart мало вообще ничтяков, мое мнение что эта cms самая беспонтовая

Снимок экрана 2018-11-07 в 22.09.58.png

Надіслати
Поділитися на інших сайтах


Решено!!!

Поиск в шапке при клике по кнопке НЕ реагировал, по клику на энтер работал!!

 

Так как шаблон я переделывал под себя, удалив всякую каку, заметил:

 

В коммон.жс в функции запуска поиска по клику на кнопку написал

 

alert('клик был');

обновил, посмотрел, нихрена.

Пошел в оригинальный header.tpl с коробки и обнаружил что там с**а подключается этот самый common.js

Хотя при нажатии на энтер он работал, странно, хз

Подключил этот common.js в своем header.tpl. Перезалил, обновил, чекнул и все работает!

 

Теперь проблема номер 3 - почему-то на странице поиск который, работает и по энтер, и по клику, но значение с ближайшего поля не берет, а берет значение с поля в хэдэре.

 

CMS я уже писал что стремная, но как разберусь надеюсь с последней проблемой отпишусь.

 

Вдруг кому помогаю!

Надіслати
Поділитися на інших сайтах


Добил этот поиск!!!!!!!!!!!!!!

Мать Вашу, opencart developers!

В общем в файле search.tpl заметил, что в скрипте внизу значение реально берется из поля поиска, который находится в div#content

В шаблоне #content вроде был один и в нужном месте, разбираться долго не стал и решил эксперимент провести.

 

 В search.tpl  где идет блок div.row с полем поиска к row добавил класс fuckme

 

В этом же файле в скрипте снизу (скрипт приложил) добавил к #content класс .fuckme и все засияло и заработало - теперь и там и там поиск работает и по кнопке и по энтеру ПЗДЦ

 

Спойлер
Цитата

 

$('#button-search').bind('click', function() {
    url = 'index.php?route=product/search';

    var search = $('#content .fuckme input[name=\'search\']').prop('value');

    if (search) {
        url += '&search=' + encodeURIComponent(search);
    }

    var category_id = $('#content .fuckme select[name=\'category_id\']').prop('value');

    if (category_id > 0) {
        url += '&category_id=' + encodeURIComponent(category_id);
    }

    var sub_category = $('#content .fuckme input[name=\'sub_category\']:checked').prop('value');

    if (sub_category) {
        url += '&sub_category=true';
    }

    var filter_description = $('#content .fuckme input[name=\'description\']:checked').prop('value');

    if (filter_description) {
        url += '&description=true';
    }

    location = url;
});

$('#content .fuckme input[name=\'search\']').bind('keydown', function(e) {
    if (e.keyCode == 13) {
        $('#button-search').trigger('click');
    }
});

 

 

 

Надіслати
Поділитися на інших сайтах


13 минут назад, Blackseabreathe сказал:

CMS я уже писал что стремная, но как разберусь надеюсь с последней проблемой отпишусь.

 

А причем тут cms?

Может стоит для начала изучить основы jquery? Тогда станет Вам более понятно почему не работало  ;-)

 

18 минут назад, Blackseabreathe сказал:

Так как шаблон я переделывал под себя, удалив всякую каку, заметил:

 

И это тоже кстати повлияло, почему дефолтный js opencart-a перестал у Вас работать.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.