2013-02-15 50 views
2

在我的網站,我有兩個菜單頂部酒吧。一個留在標題部分,另一個只在用戶到達滾動某個點時顯示(我在這裏使用了一個簡單的jQuery代碼)。這裏的問題是,兩個頂欄都包含了Search Form Mini,但只在第一個呈現的內容中(在我的情況下是'#hiddenMenu'頂欄)ajax實時搜索工作。Magento搜索表迷你重複功能障礙

只爲你明白,header.phtml文件:

<div id="hiddenMenu"> 
    <?php echo $this->getChildHtml('topMenu') ?> 
    <?php echo $this->getChildHtml('topBar') ?> 
</div> 
<div class="header-container"> 
<div class="quick-access"> 
    <?php echo $this->getChildHtml('topLinks') ?> 
</div> 

<div class="header"> 
    <?php if ($this->getIsHomePage()):?> 
    <h1 class="logo"><a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a></h1> 
    <?php else:?> 
    <h1 class="logo"><a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a> 
    <?php endif?></h1> 
</div> 

<div id="menu"> 
    <?php echo $this->getChildHtml('topMenu') ?> 
    <?php echo $this->getChildHtml('topBar') ?> 
</div> 

<?php echo $this->getChildHtml('topContainer'); ?> 

正如你所看到的,他們兩個之間的唯一區別,就是他們被放置,因爲search.mini.form由getChildHtml('topBar')調用。但在search.mini.form的第二個出現中,出於某種原因,ajax實時搜索不起作用。

form.mini.phtml文件劇照原文:

<?php $catalogSearchHelper = $this->helper('catalogsearch'); ?> 
<form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get"> 
    <div class="form-search"> 
     <div class="search-mini"> 
      <input id="search" placeholder="Busque" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text" /> 
      <button type="submit" title="<?php echo $this->__('Go') ?>" class="button"><img src="<?php echo $this->getSkinUrl('images/ico-search.png') ?>"></button> 
     </div> 
     <div id="search_autocomplete" class="search-autocomplete"></div> 
     <script type="text/javascript"> 
      //<![CDATA[ 
       var searchForm = new Varien.searchForm('search_mini_form', 'search', 'Search'); 
       searchForm.initAutocomplete('<?php echo $catalogSearchHelper->getSuggestUrl() ?>', 'search_autocomplete'); 
      //]]> 
     </script> 
    </div> 
</form> 

任何想法?

回答

1

您的兩個搜索表單具有相同的名稱。

當你撥打:

新Varien.searchForm( 'search_mini_form'

它僅指第一個,然後裝上的Live Search阿賈克斯的事情這一個

只。這一個。

你應該有2個不同的名稱,並設置阿賈克斯的事情兩種形式。

問候

+0

感謝您的幫助,但爲表單設置不同的名稱並未解決問題。現在,我正在嘗試設置不同的Ajax事件。走着瞧吧。 – akplebani 2013-02-15 16:15:16

+0

Dagfr,儘管只是改變了表格的名稱並沒有解決我的問題,但它是擋道的。我還必須更改輸入名稱和自動完成ID。我只添加了一個sufix('_hidden'在這種情況下,它的工作,我也必須保證Ajax調用的一致性:var searchForm = new Varien.searchForm('search_menu_hidden','search_hidden',''); searchForm.initAutocomplete('<?php echo $ catalogSearchHelper-> getSuggestUrl()?>','search_autocomplete_hidden'); – akplebani 2013-02-15 16:55:57